SideBarButtonLibrary

SideBarButtonLibrary 是一个轻量级的 JavaScript 库,用于创建可展开和收起的侧边栏按钮容器,支持自定义吸附方向(左、右、上、下)、按钮排列方式(水平或垂直)以及样式,适用于快速构建侧边栏工具栏或导航菜单。

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.cn-greasyfork.org/scripts/453745/1525524/SideBarButtonLibrary.js

作者
otc
版本
2.0.0
建立日期
2022-10-26
更新日期
2025-01-23
尺寸
10.6 KB
授權條款
MIT

SideBarButtonLibrary 使用说明文档

1. 简介

SideBarButtonLibrary 是一个用于创建侧边栏按钮容器的 JavaScript 库。它支持将按钮吸附到页面的左侧、右侧、顶部或底部,并允许用户自定义按钮的样式、排列方式以及展开/收起行为。

2. 功能特点

  • 吸附方向:支持将按钮容器吸附到页面的 leftrighttopbottom

  • 展开/收起:支持动态展开和收起按钮容器,支持自定义展开延迟和收起延迟。

  • 按钮排列:支持水平排列(row)和垂直排列(column)。

  • 样式自定义:用户可以通过配置对象自定义按钮样式、删除按钮样式以及容器样式。

  • 灵活配置:支持通过配置对象动态调整所有行为和样式。

3. 使用方法

3.1 引入库

将以下代码保存为 SideBarButtonLibrary.js,并在你的 HTML 文件中引入该脚本:

HTML复制

<script src="path/to/SideBarButtonLibrary.js"></script>

或者,直接将代码嵌入到你的 HTML 文件中:

HTML复制

<script>
    // 将 SideBarButtonLibrary 的代码粘贴到这里
</script>

3.2 初始化按钮容器

使用 SideBarButtonLibrary.createButtons 方法初始化按钮容器。你可以通过配置对象自定义按钮的行为和样式。

示例代码

JavaScript复制

SideBarButtonLibrary.createButtons([
    { name: 'Button 1', func: () => alert('Button 1 clicked') },
    { name: 'Button 2', func: () => alert('Button 2 clicked') }
], {
    container: {
        width: '5px',               // 收起时宽度/高度
        expandedWidth: '200px',     // 展开时宽度
        backgroundColor: 'rgba(0, 0, 0, 0.2)', // 容器背景颜色
        className: 'my-sidebar-container', // 容器类名
        position: 'left',           // 吸附位置:left/right/top/bottom
        flexDirection: 'column'     // 排列方向:row/column
    },
    buttonStyles: {
        width: '180px',             // 按钮宽度
        background: '#ff5722',      // 按钮默认背景
        hoverBackground: '#cc4400', // 按钮悬停背景
        defaultBackground: '#ff5722' // 按钮默认背景
    },
    deleteButtonStyles: {
        right: '-40px',             // 收起时删除按钮位置
        expandedRight: '20px',      // 展开时删除按钮位置
        background: 'rgba(255, 0, 0, 0.8)', // 删除按钮背景
        color: '#000'               // 删除按钮字体颜色
    },
    hoverDelay: 300,                // 悬停延迟(毫秒)
    hideDelay: 800                  // 收起延迟(毫秒)
});

3.3 配置选项

以下是 SideBarButtonLibrary.createButtons 方法中可用的配置选项:

container(容器配置)

  • width:收起时的宽度或高度(对于 topbottom 是高度)。

  • expandedWidth:展开时的宽度或高度。

  • backgroundColor:容器的背景颜色。

  • className:容器的类名(用于自定义样式)。

  • position:容器吸附的位置(leftrighttopbottom)。

  • flexDirection:按钮的排列方向(rowcolumn)。

buttonStyles(按钮样式)

  • width:按钮的宽度。

  • background:按钮的默认背景颜色。

  • hoverBackground:按钮悬停时的背景颜色。

  • defaultBackground:按钮的默认背景颜色。

  • color:按钮的字体颜色。

  • borderRadius:按钮的圆角大小。

  • fontSize:按钮的字体大小。

  • cursor:鼠标悬停时的光标样式。

deleteButtonStyles(删除按钮样式)

  • right:收起时删除按钮的位置。

  • expandedRight:展开时删除按钮的位置。

  • background:删除按钮的背景颜色。

  • color:删除按钮的字体颜色。

  • borderRadius:删除按钮的圆角大小。

  • fontSize:删除按钮的字体大小。

hoverDelayhideDelay

  • hoverDelay:鼠标悬停后展开的延迟时间(单位:毫秒)。

  • hideDelay:鼠标移出后收起的延迟时间(单位:毫秒)。

3.4 添加更多按钮

你可以多次调用 SideBarButtonLibrary.createButtons 方法,向同一个容器中添加更多按钮。只需确保使用相同的 className

示例

JavaScript复制

SideBarButtonLibrary.createButtons([
    { name: 'Button 3', func: () => alert('Button 3 clicked') },
    { name: 'Button 4', func: () => alert('Button 4 clicked') }
], {
    container: {
        className: 'my-sidebar-container' // 使用相同的容器类名
    }
});

4. 注意事项

  • 类名冲突:确保你提供的 className 不会与页面上现有的类名冲突。

  • 样式覆盖:如果需要进一步自定义样式,可以通过 CSS 覆盖默认样式。

  • 删除按钮:删除按钮会移除整个容器,请谨慎使用。

5. 示例

以下是一个完整的 HTML 示例,展示如何使用 SideBarButtonLibrary

HTML复制

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SideBarButtonLibrary 示例</title>
    <style>
        /* 可选:自定义样式 */
        .my-sidebar-container {
            /* 自定义容器样式 */
        }
    </style>
</head>
<body>
    <script src="path/to/SideBarButtonLibrary.js"></script>
    <script>
        SideBarButtonLibrary.createButtons([
            { name: 'Button 1', func: () => alert('Button 1 clicked') },
            { name: 'Button 2', func: () => alert('Button 2 clicked') }
        ], {
            container: {
                width: '5px',
                expandedWidth: '200px',
                backgroundColor: 'rgba(0, 0, 0, 0.2)',
                className: 'my-sidebar-container',
                position: 'left',
                flexDirection: 'column'
            },
            buttonStyles: {
                width: '180px',
                background: '#ff5722',
                hoverBackground: '#cc4400',
                defaultBackground: '#ff5722'
            },
            deleteButtonStyles: {
                right: '-40px',
                expandedRight: '20px',
                background: 'rgba(255, 0, 0, 0.8)',
                color: '#000'
            },
            hoverDelay: 300,
            hideDelay: 800
        });
    </script>
</body>
</html>

6. 联系与支持

如果你在使用过程中遇到任何问题,或者有任何建议和反馈,欢迎随时联系我。

作者:otc 邮箱[email protected]