《ElementUI 基础知识》el-tabs header 监听鼠标中键滚动时左右滑动(ElementPlus同样适用)

本文主要是介绍《ElementUI 基础知识》el-tabs header 监听鼠标中键滚动时左右滑动(ElementPlus同样适用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

收到需求,可监听 el-tabs 头在鼠标 hover 时。滑动鼠标中键,可左右滑动!

效果

  • 鼠标中键上下滑动时;
  • 向上滑,向左移动;
  • 向下滑,向右移动;

在这里插入图片描述

实现

  • 代码56 - 60行,添加鼠标中键滑动监听事件;
  • 代码61 - 65行,删除鼠标中键滑动监听事件;
  • 代码24 - 54行,实现滑动;
<template><div><el-tabs id="myTabs" v-model="activeName" type="card" ><el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane><el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane><el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane><el-tab-pane label="定时任务补偿" name="fourth">定时任务补偿</el-tab-pane><el-tab-pane label="测试01" name="01">测试01</el-tab-pane><el-tab-pane label="测试02" name="02">测试02</el-tab-pane><el-tab-pane label="测试03" name="03">测试03</el-tab-pane><el-tab-pane label="测试04" name="04">测试04</el-tab-pane></el-tabs></div>
</template>
<script>
export default {data() {return {activeName: 'first',currentScrollLeft: 0,};},methods: {tabsMouseWheel(event) {// 阻止默认行为(例如,阻止页面自动滚动)  event.preventDefault();  // tabs scrollconst el = event.currentTarget.getElementsByClassName('el-tabs__nav-scroll')[0];// 最大left:scrollWidth - 上一级的宽度。注意是scrollWidthconst maxLeft = el.scrollWidth - el.offsetWidth;// 设置每次滚动的移动量const speed = 30;   if (event.deltaY < 0) {  // 向上滚动,向左移动div  this.currentScrollLeft -= speed;  } else {  // 向下滚动,向右移动div  this.currentScrollLeft += speed;  } // 保证scrollLeft不会小于0  if (this.currentScrollLeft < 0) {  this.currentScrollLeft = 0;  } else if(maxLeft < this.currentScrollLeft) {// 不会大于最大 srcollLeftthis.currentScrollLeft = maxLeft;}// 更新div的位置  el.scrollLeft = this.currentScrollLeft; },},mounted() {// 添加监听const navScrollEl = document.querySelector('#myTabs .el-tabs__header');navScrollEl.addEventListener('wheel', this.tabsMouseWheel);},beforeDestroy() {// 删除监听const navScrollEl = document.querySelector('#myTabs .el-tabs__header');navScrollEl.removeEventListener('wheel', this.tabsMouseWheel);}
};
</script>
<<style lang="stylus">
#myTabs {width: 350px;
}
</style>

这篇关于《ElementUI 基础知识》el-tabs header 监听鼠标中键滚动时左右滑动(ElementPlus同样适用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948692

相关文章

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

spring @EventListener 事件与监听的示例详解

《spring@EventListener事件与监听的示例详解》本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序... 目录1、自定义Application Event2、自定义监听3、测试4、源代码5、其他5.1 顺序执行

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm