Vue中如何用鼠标滑轮进行横向滑动不显示滚动条
1.页面 2.在vue methods方法中定义
<div class="navHistory gzparkNavWarp" @mousewheel="handleMouseWheel">
<el-tag
class="gzparkNav"
v-for="tag in tags"
:key="tag.name"
closable
:type="tag.type"
:disable-transitions="true"
@close="handleClose(tag)"
>
tag.name
</el-tag>
</div>
methods:
handleMouseWheel(e)
const scrollLeft = document.querySelector(".gzparkNavWarp").scrollLeft;
const offsetWidth = document.querySelector(".gzparkNavWarp").offsetWidth;
const scrollWidth = document.querySelector(".gzparkNavWarp").scrollWidth;
if (e.wheelDelta < 0 && scrollLeft + offsetWidth < scrollWidth)
document.querySelector(".gzparkNavWarp").scrollLeft =
document.querySelector(".gzparkNavWarp").scrollLeft + 100;
else if (e.wheelDelta > 0 && scrollLeft > 0)
document.querySelector(".gzparkNavWarp").scrollLeft =
document.querySelector(".gzparkNavWarp").scrollLeft - 100;
,
<style lang="scss" scoped>
.navHistory
width: 100%;
height: 40px;
border-bottom: 1px solid #ccc;
display: flex;
align-items: center;
overflow: hidden;
.gzparkNav
margin: 0 10px;
</style>
一.鼠标拖拽滚动
<div class="tab-list id="nav">
<div class="tab-item" v-for="(item,index) in list" :key=""> </div>
</div>
mounted() {
this.scrollInit();
},
methods: {
scrollInit() {
const nav = document.getElementById("nav")
var flag;
var downX;
var scrollLeft;
nav.addEventListener("mousedown", function (event) {
flag = true;
downX = event.clientX;
scrollLeft = this.scrollLeft;
});
nav.addEventListener("mousemove", function (event) {
if (flag) {
var moveX = event.clientX;
var scrollX = moveX - downX;
this.scrollLeft = scrollLeft - scrollX
console.log(scrollX)
}
});
nav.addEventListener("mouseup", function () {
flag = false;
});
nav.addEventListener("mouseleave", function (event) {
flag = false;
});
},
}
};
#nav{
overflow-x: auto;
overflow-y: hidden;
}
二.鼠标滚轮滚动
<div class="tab-list id="nav">
<div class="tab-item" v-for="(item,index) in list" :key=""> </div>
</div>
mounted() {
this.scrollInit();
},
methods: {
scrollInit() {
const nav = document.getElementById("nav")
nav.addEventListener('mousewheel', handler, false)
function handler(event) {
const detail = event.wheelDelta || event.detail;
const moveForwardStep = 1;
const moveBackStep = -1;
let step = 0;
if (detail < 0) {
step = moveForwardStep * 100;
} else {
step = moveBackStep * 100;
}
nav.scrollLeft += step;
}
},
#nav{
overflow-x: auto;
overflow-y: hidden;
}