news 2026/7/1 19:05:52

实现自定义指令 v-scrollBar,用于动态显示/隐藏滚动条,提升用户体验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实现自定义指令 v-scrollBar,用于动态显示/隐藏滚动条,提升用户体验
// src/directives/scrollbar.js export default { mounted(el, binding) { // 初始化滚动条状态 hideScrollbar(el); // 添加滚动事件监听 let scrollTimer = null; const handleScroll = () => { // 显示滚动条 showScrollbar(el); // 清除之前的定时器 if (scrollTimer) { clearTimeout(scrollTimer); } // 设置新的定时器,在停止滚动后隐藏滚动条 scrollTimer = setTimeout(() => { hideScrollbar(el); }, binding.value || 1000); // 默认1秒后隐藏,可通过指令参数自定义 }; // 保存定时器引用到元素上,便于销毁时清理 el._scrollTimer = scrollTimer; el._scrollHandler = handleScroll; // 绑定滚动事件 el.addEventListener('scroll', handleScroll); }, unmounted(el) { // 清理事件监听和定时器 if (el._scrollHandler) { el.removeEventListener('scroll', el._scrollHandler); } if (el._scrollTimer) { clearTimeout(el._scrollTimer); } } }; // 显示滚动条的函数 function showScrollbar(el) { el.classList.add('show-scrollbar'); } // 隐藏滚动条的函数 function hideScrollbar(el) { el.classList.remove('show-scrollbar'); }

使用

<div class="record-wrap" v-scrollBar> <DynamicRecordSuvery :flag="flag" :messageId="messageId" :thoughtContents="thoughtContent" @getItem="getItem" /> </div>
.record-wrap { flex-grow: 1; overflow-y: auto; margin-bottom: 10px; padding: 15px; /* 隐藏默认滚动条 */ scrollbar-width: none; /* Firefox */ &::-webkit-scrollbar { display: none; /* Chrome/Safari */ } .record-box { width: 100%; } } /* 显示滚动条(指令添加.show-scrollbar时) */ .record-wrap.show-scrollbar { scrollbar-width: thin; &::-webkit-scrollbar { display: block; width: 8px; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 22:51:40

19.docker 图形化管理界面

文章目录 Docker 图形化管理及综合实验DockerUI 容器管理器的安装与使用 综合实验构建WordPress Docker 图形化管理及综合实验 DockerUI 容器管理器的安装与使用 简介&#xff1a; DockerUI是一个易用且轻量化的 Docker 管理工具&#xff0c;通过 Web 界面的操作&#xff0c…

作者头像 李华
网站建设 2026/7/1 22:51:30

OpenWRT源码下载

OpenWRT源码下载trunk&#xff1a;15.05 (Chaos Calmer):14.07 (Barrier Breaker):12.09 (Attitude Adjustment):lede相关17.01 &#xff08;稳定版&#xff09;lede-trunktrunk&#xff1a; git clone git://github.com/openwrt/openwrt.git 15.05 (Chaos Calmer): git clo…

作者头像 李华
网站建设 2026/7/2 0:02:37

掌握 `background-attachment: fixed`:打造固定背景滚动特效

background-attachment 是 CSS 中用于控制背景图像滚动行为的属性&#xff0c;其中 fixed 取值是最常用且最具视觉冲击力的选项——它能让背景图像固定在浏览器视口&#xff0c;不随页面滚动而移动&#xff0c;从而实现前景内容滚动、背景静止的高级视觉效果。 一、属性基础 …

作者头像 李华