overlayscrollbars使用

官网

https://github.com/KingSora/OverlayScrollbars

使用

<link href="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/styles/overlayscrollbars.css" rel="stylesheet">
<script src="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/browser/overlayscrollbars.browser.es6.js"></script>

案例

快速入门

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link href="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/styles/overlayscrollbars.css"rel="stylesheet"><script src="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/browser/overlayscrollbars.browser.es6.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script><style>html,body {width: 100%;height: 100%;margin: 0;padding: 0;}#test {width: 100%;height: 100%;}#test .item {height: 100px;width: 100%;border-bottom: 1px solid #ccc;text-align: center;font-size: 40px;line-height: 100px;}</style>
</head><body><div id="test"></div><script>document.addEventListener('DOMContentLoaded', function () {var os = OverlayScrollbarsGlobal.OverlayScrollbars(document.querySelector("body"), {});});$(function () {var htmlData = '';for (let index = 1; index <= 100; index++) {htmlData += '<div class="item">' + index + '</div>'}$("#test").html(htmlData)})</script>
</body></html>

在这里插入图片描述

自动隐藏滚动条

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link href="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/styles/overlayscrollbars.css"rel="stylesheet"><script src="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/browser/overlayscrollbars.browser.es6.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script><style>html,body {width: 100%;height: 100%;margin: 0;padding: 0;}#test {width: 100%;height: 100%;}#test .item {height: 100px;width: 100%;border-bottom: 1px solid #ccc;text-align: center;font-size: 40px;line-height: 100px;}</style>
</head><body><div id="test"></div><script>document.addEventListener('DOMContentLoaded', function () {var os = OverlayScrollbarsGlobal.OverlayScrollbars(document.querySelector("body"), {scrollbars: {autoHide: 'leave',autoHideDelay: 1300,},});OverlayScrollbarsGlobal.OverlayScrollbars.plugin([OverlayScrollbarsGlobal.SizeObserverPlugin,OverlayScrollbarsGlobal.ClickScrollPlugin,OverlayScrollbarsGlobal.ScrollbarsHidingPlugin,])});$(function () {var htmlData = '';for (let index = 1; index <= 100; index++) {htmlData += '<div class="item">' + index + '</div>'}$("#test").html(htmlData)})</script>
</body></html>

在这里插入图片描述
滚动的时候就会出现

详细内容

参考github整理,有需要的可以看

<!DOCTYPE html>
<html data-overlayscrollbars-initialize lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- <link href="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/styles/overlayscrollbars.css"rel="stylesheet"><script src="https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/browser/overlayscrollbars.browser.es6.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script> --><link href="css/overlayscrollbars.css" rel="stylesheet" /><script src="js/jquery.js"></script><script src="js/overlayscrollbars.browser.es5.js"></script><style>html,body {width: 100%;height: 100%;margin: 0;padding: 0;}#test {width: 100%;height: 100%;}#test .item {height: 100px;width: 100%;border-bottom: 1px solid #ccc;text-align: center;font-size: 40px;line-height: 100px;}#fixed {top: 0;right: 10px;position: fixed;width: 5px;height: 100%;background: red;}</style>
</head>
<!-- 初始化OverlaySollbars时,创建所有元素并将其附加到DOM需要几毫秒的时间。在此期间,本机滚动条仍然可见,并将在初始化完成后关闭。这被视为闪烁。要修复此行为,请将数据覆盖滚动条初始化(data-overlayscrollbars-initialize)属性应用于目标元素(以及初始化正文元素的滚动条时的html元素)。 
--><body data-overlayscrollbars-initialize><div id="test"></div><div id="fixed"></div><script>//快速上手// document.addEventListener('DOMContentLoaded', function () {//     var os = OverlayScrollbarsGlobal.OverlayScrollbars(document.querySelector("body"), {});// });//使用对象的方式初始化//OverlayScrollbars(document.querySelector('body'), {});//OverlayScrollbarsGlobal.OverlayScrollbars({ target: document.querySelector('body') }, {});//使用对象初始化时,可以指定库如何处理生成的元素。例如,您可以将现有元素指定为“viewport”元素。然后库不会生成它,而是使用指定的元素:// OverlayScrollbarsGlobal.OverlayScrollbars({//     target: document.querySelector('body'),//     elements: {//         viewport: document.querySelector('body'),//     },// }, {});//如果你有一个固定的DOM结构,不想让OverlaySollbars创建自己的元素,这非常有用。当您希望另一个库使用OverlaySollbars时,这些情况非常常见。//您还可以决定滚动条应应用于哪个元素:// OverlayScrollbarsGlobal.OverlayScrollbars({//     target: document.querySelector('body'),//     scrollbars: {//         slot: document.querySelector('#fixed'),//     },// }, {});//最后但同样重要的是,您可以决定何时取消初始化:// OverlayScrollbarsGlobal.OverlayScrollbars({//     target: document.querySelector('body'),//     cancel: {//         nativeScrollbarsOverlaid: true,//         body: null,//     }// }, {});//在上面的示例中,如果覆盖了本机滚动条,或者如果您的目标是body元素,//并且插件已确定初始化body元素会干扰windows.scrollTo等本机功能,则初始化将中止//配置//您可以使用一组初始选项初始化OverlaySollbars,这些选项可以随时使用options方法进行更改:// document.addEventListener('DOMContentLoaded', function () {//     var os = OverlayScrollbarsGlobal.OverlayScrollbars(document.querySelector("body"), {//         overflow: {//             //'hidden', 'scroll', 'visible', 'visible-hidden' and 'visible-scroll'.//             y: 'hidden',//visible滚动条不可见,可以滚动 scroll滚动条一直可见,可以滚动 hidden不允许滚动//         },//     });// });//默认配置如下// const defaultOptions = {//     paddingAbsolute: false,//表示内容的 padding 是否应为绝对值。boolean//     showNativeOverlaidScrollbars: false,//表示本机叠加滚动条是否可见。boolean//     update: {//         elementEvents: [['img', 'load']],//元组数组。 元组中的第一个值是选择器,第二个值是事件名称。 如果具有指定选择器的任何元素发出任何指定事件,插件将更新自身。 默认值可解释为 "如果任何 img 元素发出加载事件,插件将自行更新"。//         debounce: [0, 33],//如果超时时间为 0,则将使用 requestAnimationFrame 代替 setTimeout 来进行去抖。//         //取消跟踪内容变化的 MutationObserver。 如果传递的是一个元组,第一个值是超时时间,第二个值是最大等待时间。 如果只有一个数字,则视为超时,没有最大等待时间。 如果为空,则不存在去抖动。 有助于微调性能。//         attributes: null,//即使该选项为空,MutationObserver 也会始终观察一个基本属性数组。//         ignoreMutation: null,//一个接收 MutationRecord 作为参数的函数。 如果函数返回一个真值,突变将被忽略,插件也不会更新。 这对微调性能非常有用。//     },//     overflow: {//     //'hidden'、'scroll'、'visible'、'visible-hidden'、'visible-scroll'.//         x: 'scroll',//水平 (x) 轴的溢出行为。//         y: 'scroll',//垂直(Y)轴的溢出行为。//     },//     scrollbars: {//         theme: 'os-theme-dark',//将指定的主题(类名)应用于滚动条。//         visibility: 'auto',//有效值'visible', 'hidden', and 'auto'.如果滚动条的滚动轴可以滚动溢出,则该滚动条的可见性。 (只有当溢出行为设置为 "scroll "或 "visible-scroll "时,轴的可滚动溢出才有可能)。//         autoHide: 'never',//'never', 'scroll', 'leave', 'move'.指定是否在用户执行特定操作后自动隐藏可见滚动条。//         autoHideDelay: 1300,//自动隐藏滚动条前的延迟时间(毫秒)。//         autoHideSuspend: false,//暂停自动隐藏功能,直到执行了第一次滚动交互。 出于向后兼容性的原因,该选项的默认值为假,但为了更好的可访问性,建议使用 "true"。//         dragScroll: true,//表示是否可以拖动滚动条手柄进行滚动。//         clickScroll: false,//如果设置为 true,则需要使用 ClickScrollPlugin。表示是否可以点击滚动条轨道进行滚动。//         pointers: ['mouse', 'touch', 'pen'],插件应响应的指针类型。//     },// };//事件//您可以使用一组初始事件对 OverlayScrollbars 进行初始化,这些事件可以随时使用 on 和 off 方法进行管理:// OverlayScrollbars(document.querySelector('#myElement'), {}, {//     updated(osInstance, onUpdatedArgs) {//         // ...//     }// });//每个事件的第一个参数都是事件派发的实例。 总是这样//在所有生成的元素、观察者和事件都附加到 DOM 后发送。//initialized 在所有生成的元素、观察者和事件都附加到 DOM 后发送。//updated在实例更新后发送。如果触发了更新,但没有任何变化,则不会派发事件。//destroyed 在所有生成的元素、观察者和事件从 DOM 中移除后派发。//scroll 通过滚动视口调度。// const scrollBar = OverlayScrollbarsGlobal.OverlayScrollbars(document.querySelector("body"), {}, {//     initialized: (instance) => {//         console.log('加载完成');//         console.log(instance);//     },//     updated: (instance, canceled) => {//         console.log('更新了');//         console.log(instance);//         console.log(canceled);//     },//     destroyed: (instance, canceled) => {//         console.log('被销毁了');//         console.log(instance);//         console.log(canceled);//     },//     scroll: (instance, event) => {//         console.log('滚动条');//         console.log(instance);//         console.log(event);//     },// });//静态方法//valid(osInstance:any): boolean 检查传递的值是否为有效且未被销毁的overlayrollings实例//env(): Environment 获取环境//nonce(newNonce): void  设置内联样式的nonce属性。//plugin(plugin): object | undefined 添加插件//plugin(plugins): (object | void)[] 添加一些插件 描述插件静态模块实例的数组,如果找不到实例,则为undefined。//样式//OverlayScrollbars有两个主题,分别是os-theme-dark和os-theme-light。您可以使用滚动条.theme选项更改主题。//自定义主题可以通过多种方式完成。最简单、最快的方法是使用预定义的CSS自定义属性集,即CSS变量。如果这还不够,您可以添加自定义类名或向现有类名添加自定义样式。//OverlaySollbars提供了一组CSS自定义属性,使滚动条样式设置变得简单快捷:/*.os-scrollbar {// 滚动条的大小--os-size: 0;// 滚动条的垂直轴填充(水平:padding-y,垂直:padding-x)--os-padding-perpendicular: 0;// 滚动条的轴填充(水平:padding-x,垂直:padding-y)--os-padding-axis: 0;// 滚动条轨迹的边界半径--os-track-border-radius: 0;// 滚动条轨迹的背景--os-track-bg: none;// 滚动条轨迹的:hover背景--os-track-bg-hover: none;//滚动条轨道的活动背景--os-track-bg-active: none;// 滚动条轨道的边界--os-track-border: none;// 滚动条轨迹的:hover背景--os-track-border-hover: none;//滚动条轨道的活动背景--os-track-border-active: none;// 滚动条控制柄的边界半径--os-handle-border-radius: 0;// 滚动条手柄的背景--os-handle-bg: none;// 滚动条手柄的:hover背景--os-handle-bg-hover: none;// 滚动条手柄的:活动背景--os-handle-bg-active: none;// 滚动条手柄的边框--os-handle-border: none;//滚动条手柄的:hover边框--os-handle-border-hover: none;// 滚动条手柄的:活动边框--os-handle-border-active: none;//滚动条句柄的最小大小--os-handle-min-size: 33px;// 滚动条句柄的最大大小--os-handle-max-size: none;// 滚动条控制柄的垂直轴大小(水平:高度,垂直:宽度)--os-handle-perpendicular-size: 100%;// 滚动条控制柄的:悬停轴垂直大小(水平:高度,垂直:宽度)--os-handle-perpendicular-size-hover: 100%;// 滚动条控制柄的:活动轴垂直大小(水平:高度,垂直:宽度)--os-handle-perpendicular-size-active: 100%;// 增加滚动条手柄的交互区域。--os-handle-interactive-area-offset: 0;}*///您可以同时更改两个滚动条的属性,也可以更改每个滚动条轴的属性。在下面的示例中,我选择了“os theme custom”作为主题名称:/*// 水平和垂直滚动条为10px.os-theme-custom {--os-size: 10px;}// 水平滚动条为10px.os-theme-custom.os-scrollbar-horizontal {--os-size: 10px;}// 垂直滚动条为20px.os-theme-custom.os-scrollbar-vertical {--os-size: 20px;}*///插件//任何不被认为是核心功能或旧浏览器兼容性的东西都会通过插件暴露出来。之所以这样做,是因为所有未使用的插件在树摇动过程中都会被省略,并且不会最终出现在您的最终捆绑包中。//OverlaySollbars附带了以下插件://ScrollbarsHidingPlugin:不支持原生滚动条样式的旧浏览器需要它。您可以在此处找到需要此插件的浏览器列表(请注意,尽管iOS Safari>=14被标记为不受支持,但您只需要iOS<7.1的此插件)。//SizeObserverPlugin:不支持ResizeObserver api的旧浏览器需要此插件。您可以在此处找到需要此插件的浏览器列表//ClickScrollPlugin:如果你想使用滚动条选项:{clickScroll:true}。/*import { OverlayScrollbars, ScrollbarsHidingPlugin, SizeObserverPlugin, ClickScrollPlugin } from 'overlayscrollbars';// Single pluginOverlayScrollbars.plugin(ScrollbarsHidingPlugin);// Multiple pluginsOverlayScrollbars.plugin([SizeObserverPlugin, ClickScrollPlugin]);*/document.addEventListener('DOMContentLoaded', function () {var os = OverlayScrollbarsGlobal.OverlayScrollbars(document.querySelector("body"), {scrollbars: {autoHide: 'leave',autoHideDelay: 1300,},});OverlayScrollbarsGlobal.OverlayScrollbars.plugin([OverlayScrollbarsGlobal.SizeObserverPlugin,OverlayScrollbarsGlobal.ClickScrollPlugin,OverlayScrollbarsGlobal.ScrollbarsHidingPlugin,])});$(function () {var htmlData = '';for (let index = 1; index <= 100; index++) {htmlData += '<div class="item">' + index + '</div>'}$("#test").html(htmlData)})</script>
</body></html>

参考

https://www.showapi.com/news/article/66b7b6884ddd79f11a0a79aa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OMRON欧姆龙E5GN温控器手测

OMRON欧姆龙E5GN温控器手测

17【Protues单片机仿真】基于51单片机的太阳能智能谷物翻晒机器人

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;避障&#xff0c;低于50CM报警&#xff0c;LED灯亮起&#xff0c;自动翻晒用光敏电阻&#xff0c;光照强度大&#xff0c;电机转动&#xff0c;相当于翻晒粮食&#xff0…

【中间件——基于消息中间件的分布式系统的架构】

1. 基于消息中间件的分布式系统的架构 从上图中可以看出来&#xff0c;消息中间件的是 1&#xff1a;利用可靠的消息传递机制进行系统和系统直接的通讯 2&#xff1a;通过提供消息传递和消息的排队机制&#xff0c;它可以在分布式系统环境下扩展进程间的通讯。 1.1 消息中间件…

PostgreSQL的学习心得和知识总结(一百五十一)|[performance] PostgreSQL列对齐

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

算法题——滑动窗口(图示+代码)

什么时候可以使用滑动窗口&#xff1f; 当我们尝试对一条题目进行暴力插解时&#xff0c;若发现 一、长度最小的子数组 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程…

一个 Java 语言简化处理 PDF 的框架,提供了一套简单易用的 API 接口,满足多样化需求又能简化开发流程的处理方案(附教程)

前言 当前市面上处理 PDF 文件的工具众多&#xff0c;但它们往往存在一定的局限性&#xff0c;比如复杂交互、功能单一等问题。尤其对于那些需要频繁生成或编辑 PDF 文档的应用场景来说&#xff0c;找到一个既能满足多样化需求又能简化开发流程的处理方案显得尤为重要。那么&a…

借用连接2-得到主库或从库池子连接

二、借用连接--AbstractRoutingDataSource类 目的&#xff1a;基于look up data&#xff0c;然后从目标数据源借用连接 注look up key确定走主 or 从数据库连接池代码开发&#xff1a; 1.定义子类继承AbstractRoutingDataSource&#xff0c;并覆写determineCurrentLookupKey方…

Python 从入门到实战30(高级文件的操作)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了操作目录的相关知识。今天我们将学习一下高级文…

性能监控之Python实战SkyWalking链路追踪

文章目录 一、介绍二、SkyWalking支持的语言三、SkyWalking安装3.1 前提准备3.2 先安装ElasticSearch7.X3.3 Skywalking-OAP 安装3.4 Skywalking-UI 界面安装3.5 访问页面检查SkyWalking是否可以访问 四、Python 项目接入SkyWalking4.1 演示项目代码4.2 验证 sw-python4.3 配置…

AI会议时代:企业如何搭上快车?

“我 们认为&#xff0c;AI绝不仅是会议的辅助工具&#xff0c;而更会是重塑会议流程的关键力量。通过AI的个性化定制、大规模支持、智能分析这些技术&#xff0c;AI会议将大大提升会议的智能化与高效性&#xff0c;进而成为企业数字化转型的核心驱动力。” 作者|斗斗 编辑…

webdav解说

WebDAV&#xff08;Web Distributed Authoring and Versioning&#xff09;是一种基于HTTP/1.1协议的扩展&#xff0c;它允许用户通过网络进行文件的上传、删除、编辑等操作&#xff0c;从而实现远程文件管理。 WebDAV 是一种网络文件共享协议&#xff0c;它扩展了HTTP协议&am…

THREE.JS法线Shader

以普通情况而论 vNormal normal;//...gl_FragColor vec4( vNormal, 1. );vNormal normal;//...gl_FragColor vec4( normalize( vNormal ) * 0.5 0.5, 1. );vNormal normalMatrix * normal;//...gl_FragColor vec4( normalize( vNormal ) * 0.5 0.5, 1. );normalMa…

【Java异常】(简简单单拿捏)

【Java异常】&#xff08;简简单单拿捏&#xff09; 1. 异常的简单介绍2. 异常的抛出2.1 语法 3. 异常的处理3.1 异常声明throws3.2 try-catch捕获并处理 4. 例子&#xff08;try-catch自定义异常&#xff09; 1. 异常的简单介绍 程序员在运行代码时会遇到很多异常&#xff0c…

Linux系统安装MySQL8.40(保姆级教程)

前言&#xff1a; 说明&#xff1a;本文章是在阿里云ecs上安装MySQL&#xff0c;即&#xff1a;Linux是在联网状态下。 一、安装前环境准备 1.查看MySQL应用是否已存在 rpm -qa |grep mysql说明&#xff1a;若返回空信息&#xff0c;就说明当前环境没有安装MySQL。 2.查看ma…

解决方案:如何区分python里面绝对路径跟相对路径的不同

文章目录 一、现象二、解决方案 一、现象 在工作中&#xff0c;会经常混淆绝对路径跟相对路径的区别&#xff0c;我也是找了资料之后就懂了&#xff0c;但时间一长就混淆了&#xff0c;于是&#xff0c;我在这里记录下 二、解决方案 在Python中&#xff0c;绝对路径和相对路…

关于el-card的height设置100%后, el-card内容超出高度后,内容被隐藏这件事

1. 解决方法 全局样式添加以下代码 .el-card__body{height: 100%;width: 100%; }2. 问题原因 代码 <el-card style"height: 100%"><!-- ... --> </el-card>选中.el-card 元素发现这里的 .el-card 的 overflow:hidden 而内部 .el-card__body除…

WiFi无线连接管理安卓设备工具:WiFiADB

介绍 WiFi ADB 使您能够通过 WiFi TCP/IP 连接直接在设备上轻松调试和测试 Android 应用&#xff0c;无需使用 USB 数据线。在启用 WiFi 上的 ADB 后&#xff0c;打开控制台将电脑连接到设备。 手机和电脑在同一个WiFi然后电脑上运行adb connect x.x.x.x:x命令即可 下载 谷…

七段 LED 显示器(7段数码管)

7 段 LED 显示器, 通常简称为 LED 数码管 或 数码管. 通过 菜单--绘制--数字芯片--添加 7 段 LED 显示器 可以引入它. 普通模式 它内部其实就是七盏长条状的 LED 灯, 有的横着放, 有的竖着放. 七个灯用 a b c d e f g 分别表示. 灯的位置从上到下, 从里到外顺时针下来, 如上图…

青年女演员白澜闪耀亮相第五届庐山电影节红毯

2024年9月25日&#xff0c;演员白澜受邀出席了第五届庐山电影节盛典晚会&#xff0c;在这个星光熠熠的夜晚&#xff0c;青年演员白澜以一袭精心设计的礼服惊艳亮相&#xff0c;成为红毯瞩目的焦点。 整个第五届庐山国际爱情电影周以“庐山&#xff0c;你的爱情靠山”为主题&…

帆软通过JavaScript注入sql,实现数据动态查询

将sql语句设置为参数 新建数据库查询 设置数据库查询的sql语句 添加控件 JavaScript实现sql注入 添加事件 编写JavaScript代码 //获取评价人id var pjrid this.options.form.getWidgetByName("id").getValue();//显示评价人id alert("评价人&#xff1a;&…