Vue项目-鼠标滚轮实现横向滚动


Vue项目-鼠标滚轮实现横向滚动


 

一、需求

如下图当动态的tab栏增加到超出浏览器窗口宽度时,需要有横向滚动,并且实现鼠标滚轮滚动效果

 二、实现

在这之前已经设置好横向滚动的样式了(white-space:nowrap;overflow-x:auto等css样式实现

  1、HTML部分

 

<div class="tabBar">
    // ......动态tab栏内容......
<div>

 

  2、JavaScript部分

mounted中监听元素上的鼠标滚轮事件(mousewheel):

mounted: function() {
  const tabBar = this.$el.querySelector('.tabBar')
  tabBar.addEventListener('mousewheel', this.handleScroll) // 监听滚轮滚动事件
}

 

methods中定义横向滚动的方法:
handleScroll(e) {
  // 0----down  1----up
  var direction = e.deltaY > 0 ? '0' : '1'
  const tabBar = this.$el.querySelector('.tabBar')
  //下面的实现的是内部元素横向滚动,前提设置好内部元素横向的滚动样式了
  if (direction === '0') {
    tabBar.scrollLeft += 30
  } else {
    tabBar.scrollLeft -= 30
  }
}

至此就实现了滚轮滚动的效果了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM