SideBarButtonLibrary

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

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

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

作者
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]