SideBarButtonLibrary

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

Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @require https://update.greasyfork.org/scripts/453745/1525524/SideBarButtonLibrary.js

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

Maker
otc
Versie
2.0.0
Gemaakt op
26-10-2022
Bijgewerkt op
23-01-2025
Grootte
10,6 KB
Licentie
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]