JavaScript如何在使用鼠标滚轮时禁止滚动页面
使用element.onmousewheel
在触发的函数里return false
就可以鼠标滚动滚轮时不滚动页面,return true
则会开启鼠标滚轮滚动页面
这里的onmousewheel
不能被addEventListener('mousewheel',funtion(){return false})
所代替,不然会没有效果
//return false禁用鼠标滚动页面
window.onmousewheel=function(){
return false
}
//return true启用鼠标滚动页面
window.onmousewheel=function(){
return true
}
需要注意是这里的window
会禁用页面内全部的鼠标滚轮触发轮动条,如果只需要针对某个元素鼠标滚动则替换成对应的dom
结点,但是也会禁用所有包含在内的元素的鼠标滚轮触发轮动条,即使在子元素使用mousewheel=funtion(){return true}
,不过配合mouseover
和mouseleave
来判断鼠标是否在子元素上来动态的启用父元素的滚动条
//这里element是我们要禁用鼠标滚轮触发滚动条的元素
element.children[0].addEventListener('mouseover',function(){
//在子元素上就启用滚轮
element.onmousewheel=()=>{
console.log('启用滚轮')
return true
}
})
element.children[0].addEventListener('mouseleave',function(){
//离开子元素上就禁用滚轮
element.onmousewheel=()=>{
console.log('禁用滚轮')
return false
}
})