el-scrollbar鼠标横向滚动

vue2

//html
<el-scrollbar ref="scrollContainer" :vertical="false" class="scroll-container" @wheel.native.prevent="handleScroll">
    <slot />
  </el-scrollbar>
//js
computed: {
    scrollWrapper() {
      return this.$refs.scrollContainer.$refs.wrap
    }
  },

handleScroll(e) {
      const eventDelta = e.wheelDelta || -e.deltaY * 40
      const $scrollWrapper = this.scrollWrapper
      $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4
    },

vue3

//html
<el-scrollbar ref="scrollContainer" style="height: 35px" @wheel.native.prevent="handleScroll">
   <slot />
</el-scrollbar>

//js
const scrollContainer = ref()

const scrollWrapper = computed(() => {
 return scrollContainer.value.wrapRef
})

function handleScroll(e:any) {
 const eventDelta = e.wheelDelta || -e.deltaY * 40
 const $scrollWrapper = scrollWrapper.value
 $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4
}

//css
.el-scrollbar__wrap{
 overflow-x: auto;
 height: calc(100% + 20px); //多出来的20px是横向滚动条默认的样式
}
.el-scrollbar .el-scrollbar__wrap .el-scrollbar__view{
 white-space: nowrap;
 display: inline-block;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容