当前位置: 首页 > news >正文

实现自定义指令 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; } }
http://www.jsqmd.com/news/139415/

相关文章:

  • 巨量AD广告专业服务商:诚信之选带来的行业变革
  • doris中的分区上卷
  • 工商注册服务推荐:选对公司,开启企业省心之旅
  • doris中的Broadcast Join
  • 工商注册服务哪家好?靠谱之选看这里
  • 某机构趁低买入以太坊,持仓超300万枚
  • 2025年好吃的重庆香肠品牌排行,满足不同场合和个人喜好需求 - 讯息观点
  • 启用Qoder编写ztdaq的C#跨专业的平台示例总结
  • ProfiNet转CAN网关优质生产商推荐
  • 2025最新!继续教育必备9个AI论文平台深度测评
  • doris的Bucket Shuffle Join
  • 8个AI论文软件推荐,继续教育学生轻松搞定毕业论文!
  • 2026设计师私藏,正版高清图片素材网站,商用无风险,购买超省心 - 品牌2026
  • 2025年推荐电池厂排行榜,新测评精选电池正规厂商与电池生产企业推荐
  • XZ Utils库后门漏洞深度剖析:CVE-2024-3094的RCE风险与缓解方案
  • 微信小程序vue_uniapp二手书交易平台
  • 全网热议!2025年热门空调安装品牌推荐,助您选择优质的合作伙伴 - 讯息观点
  • 会议精灵:用ModelEngine构建智能办公助手实战记录
  • Doris的Colocation[托管] Join
  • 2026全网精选,商用高清正版图片素材网站合集,无版权风险放心用 - 品牌2026
  • Spring Boot 与 Apache POI 实现复杂嵌套结构 Excel 导出
  • 3453453
  • 【无人机】带飞行约束的MPC无人机【含Matlab源码 14779期】
  • 企业AI数据训练如何选?图片、视频素材与数据集供应商的选择策略 - 品牌2026
  • ProfiNet 转 CAN 网关:品牌、选购与塔讯技术推荐
  • HR追着要的面试分析Agent!全网首发华为ModelEngine实战
  • 电池定制与服务:优质供应商的选择攻略
  • 微信小程序vue_uniapp动漫国漫交流系统动漫视频评论
  • 微信小程序uniapp-vue精品课程在线学习平台
  • 完整教程:Lyra学习001:从0开始学习 **Lyra Starter Game** 项目