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,一经查实,立即删除!

相关文章

Elasticsearch 中变更索引的方法

Elasticsearch 提供了几种方法来变更索引。以下是一些常用的方法&#xff1a; 1. 更新索引设置 可以使用 Update Index Settings API 来修改部分索引设置。例如: PUT /my-index/_settings {"index" : {"number_of_replicas" : 2} }2. 重新索引数据 使用…

OMRON欧姆龙E5GN温控器手测

OMRON欧姆龙E5GN温控器手测

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

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

拿到一个新项目,如何开展测试

1. 拿到一个新的项目或者新的需求&#xff0c;首先需要搞清楚他的背景、目标和需求&#xff0c;这个过程需要和产品、开发、客户去沟通。 2. 清楚需求后&#xff0c;首先将业务流程走通&#xff0c;确保项目的基础功能是正常的 3. 根据项目需求明确测试的目标&#xff0c;如&…

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

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方…

【前端】ES13:ES13新特性

文章目录 1 类新增特性1.1 私有属性和方法1.2 静态成员的私有属性和方法1.3 静态代码块1.4 使用in来判断某个对象是否拥有某个私有属性 2 支持在最外层写await3 at函数来索引元素4 正则匹配的开始和结束索引5 findLast() 和 findLastIndex() 函数6 Error对象的Cause属性 1 类新…

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

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

(SERIES13)基于DMASM的DMDSC搭建

1 集群规划 1.1 规划内容 在宿主机上创建磁盘映像、并使用该磁盘映像创建虚拟块设备&#xff0c;按照losetup -f可用顺序分别关联到loop0, loop1, loop2, loop3&#xff1b;也可以直接挂载四个云虚拟磁盘vdb, vdc, vdd, vde&#xff1b;   配置UDEV规则&#xff0c;通过.img…

2、electron vue3 怎么创建子窗口,并给子窗口路由传参

接上回初始化vue3 electron项目&#xff0c;创建完vue3 electron项目后&#xff0c;现在要实现在渲染进程中点击按钮创建一个新的子窗口 开始 子窗口创建操作只能在主线程内完成&#xff0c;而创建操作是在渲染线程触发&#xff0c;因此就需要进行两者间的通讯。 1、创建子窗…

性能监控之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 配置…

uviewui2.x上传的坑

<u-upload:fileList"fileList3"afterRead"afterRead"delete"deletePic"name"3"multiple:maxCount"10":previewFullImage"true" ></u-upload> 其中&#xff0c;afterRead&#xff0c;deletePic方法&a…

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…

golang context管理channel

如果多个协程之间有一定的生命周期关系&#xff0c;可以使用context去做退出管理。 如下图&#xff0c;上游的ctx只能执行很快就被cancel了&#xff0c;此时那启动的子协程也没有继续运行的必要&#xff0c;所以此时子协程也监控上游的状态&#xff0c;上游一结束&#xff0c;子…

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…

为什么IP首部的源IP地址和目的IP地址不变而MAC层的源MAC地址和目的MAC地址变

IP首部的源IP地址和目的IP地址不变&#xff0c;而MAC层的源MAC地址和目的MAC地址变化的原因‌主要涉及到计算机网络中的分层结构和数据包传输过程。在OSI&#xff08;开放系统互联&#xff09;模型中&#xff0c;计算机网络被分为不同的层&#xff0c;每层都有其特定的功能。IP…