自定义滚动条组件(VUE)

自定义滚动条组件(VUE)

前言

实际开发的业务有这样的场景:需要对浏览器滚动条进行定制化的更改,比如滚动条的颜色、样式等。
谷歌浏览器中提供::-webkit-scrollbar属性可对滚动条样式进行简单的更改。如果需要进行更复杂的,例如滚动条宽度等的更改,就需要模拟浏览器的滚动条自己封装定制组件。

废话不多说直接上代码

HTML部分

<!-- showScroll 控制滚动条显示与否 -->
 <div class="scrollBox-work" v-if="showScroll">
	<!-- scrollBox-track-work 定义轨道 -->
   <div class="scrollBox-track-work">
	 <!-- scrollBox-thumb-work 定义滑轮 -->
     <div class="scrollBox-thumb-work"></div>
   </div>
 </div>

js部分

export default {
   
   
  name: "ScrollBar",
  props: {
   
   
    targetEle: {
   
   
      type: HTMLDivElement,
    },
  },
  data() {
   
   
    return {
   
   
      // 注销事件对象
      removeEvent: null,
      showScroll: false,
      // ref方式调用时保存的滚动元素dom
      refTargetEle: null
    };
  },
  mounted() {
   
   
    // 页面尺寸改变时,需要重新获取滚动
    window.addEventListener("resize", this.resizeFun);
  },
  beforeDestroy() {
   
   
    // 组件注销时,移除监听事件
    this.removeEvent ? this.removeEvent() : null;
    window.removeEventListener("resize", this.resizeFun);
  },
  methods: {
   
   
    // 主逻辑部分
    addScrollEvent(targetEle = this.targetEle) {
   
   
      if (!this.targetEle) this.refTargetEle = targetEle 
      if (targetEle) {
   
   
        const targetEleWidth = targetEle.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值