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

Vue自定义滚动条的实现

自定义滚动条的实现方式

方法一:使用纯 CSS(推荐,轻量且兼容性好)

适用于现代浏览器,尤其是 WebKit 内核(Chrome、Edge、Safari)。

样式说明:

/* 仅支持 WebKit 浏览器 */
::-webkit-scrollbar {width: 8px;height: 8px;
}::-webkit-scrollbar-track {background: #f0f0f0;border-radius: 4px;
}::-webkit-scrollbar-thumb {background-color: #c1c1c1;border-radius: 4px;border: 2px solid transparent;background-clip: content-box;
}::-webkit-scrollbar-thumb:hover {background-color: #999;
}

示例代码(Pure CSS)

<template><div class="scroll-container"><div class="scroll-content"><div v-for="n in 50" :key="n" class="item">项目 {{ n }}</div></div></div>
</template><script>
export default {name: 'ScrollCssDemo'
}
</script><style scoped>
.scroll-container {max-height: 300px;overflow-y: auto;border: 1px solid #ddd;padding: 10px;
}/* 自定义滚动条样式 */
.scroll-container::-webkit-scrollbar {width: 8px;
}.scroll-container::-webkit-scrollbar-track {background: #f0f0f0;border-radius: 4px;
}.scroll-container::-webkit-scrollbar-thumb {background-color: #bbb;border-radius: 4px;border: 2px solid transparent;background-clip: content-box;
}.scroll-container::-webkit-scrollbar-thumb:hover {background-color: #999;
}.item {padding: 8px;border-bottom: 1px solid #eee;
}
</style>

方法二:使用第三方库(如 vue-perfect-scrollbar

适用于需要更复杂交互(如横向滚动、嵌套滚动等)。

安装:

npm install vue-perfect-scrollbar perfect-scrollbar

示例代码

<template><div class="scroll-wrapper"><perfect-scrollbar style="max-height: 300px;"><div v-for="n in 50" :key="n" class="item">项目 {{ n }}</div></perfect-scrollbar></div>
</template><script>
import PerfectScrollbar from 'vue-perfect-scrollbar'
import 'perfect-scrollbar/css/perfect-scrollbar.css'export default {name: 'ScrollPerfectDemo',components: {PerfectScrollbar}
}
</script><style scoped>
.scroll-wrapper {border: 1px solid #ddd;padding: 10px;
}.item {padding: 10px;border-bottom: 1px solid #eee;
}
</style>

方法三:使用 Element UI 的 el-scrollbar 组件

Element UI 自带滚动容器,样式可自定义。

<el-scrollbar style="height: 300px;"><div v-for="item in items" :key="item.id">{{ item.name }}</div>
</el-scrollbar>

你可以通过覆盖 Element UI 的样式类 .el-scrollbar__bar.el-scrollbar__thumb 来实现自定义外观。

示例代码(Element UI)

<template><div class="scroll-wrapper"><el-card><el-scrollbar style="height: 300px;"><div v-for="n in 50" :key="n" class="item">项目 {{ n }}</div></el-scrollbar></el-card></div>
</template><script>
export default {name: 'ScrollElementDemo'
}
</script><style scoped>
.item {padding: 10px;border-bottom: 1px solid #eee;
}/* 可选:覆盖 Element UI 的滚动条样式 */
.el-scrollbar__bar {background: transparent;
}.el-scrollbar__thumb {background-color: #bbb;border-radius: 4px;
}
</style>

http://www.dtcms.com/a/395552.html

相关文章:

  • 【鸿蒙面试题-7】鸿蒙与web混合开发
  • 基于Java语言的搭子小程序_搭子APP平台
  • implements Serializable作用和原理
  • valkey9.0之HFE
  • 基于C#的湿度上位机实现方案
  • 汽车电子模块缩写
  • 随机裁剪 vs. 中心裁剪:深度学习中图像预处理的核心技术解析
  • 四大金刚之计算机网络
  • 划重点|云栖大会「AI 原生应用架构论坛」看点梳理
  • Spark源码中的AQS思想
  • lora微调大语言模型(qwen1.5-chat)
  • 数藏APP如何选择高防IP
  • 破壁之道:构建统一EDI平台,提速芯片设计与制造协作链路
  • 【完整源码+数据集+部署教程】房屋损坏图像分割系统: yolov8-seg-fasternet-bifpn
  • 整体设计 完整的逻辑链条 之6 从简约文字到公共逻辑:四种 “空” 驱动的整体构建方法论
  • 软考中项备考经验分享
  • 基于疾风气象大模型预测“桦加沙”台风轨迹的探索与展望
  • 光谱相机在护眼灯领域的应用
  • 坤驰科技携国产化MTCA解决方案,亮相大科学装置控制系统研讨会
  • 操作系统(一) :操作系统基本概念及特征
  • 魔百盒 Armbian OS 25.08 (基于 Debian 11 bullseye)换源
  • MacOS安装brew失败,无法访问github,怎么处理
  • 举办2025年iCAN大学生创新创业大赛未来机器人创业大赛
  • MissionPlanner架构梳理之(十八)视频流
  • 2025 前端突围战:当 React Server Components 遇上 AI 编程,我们该如何重构开发范式?
  • xss-labs闯关【1-11】
  • vue2利用canvas翻页浏览pdf文件
  • 仿生视觉芯片迈向实用化:《Advanced Science》报道双极性宽谱光电晶体管,赋能自动驾驶与机器感知
  • 如何在手机上把CAD图纸导出为PDF?
  • 【2025最新】02 Spring Boot 第一个小程序 for VS Code - 通过 Spring Initializr 扩展创建