我有两页,这些是我无法达到的条件,如果不可能,请告诉我。
在一个页面中,我需要禁用鼠标滚轮向上滚动。因此,当我用鼠标滚轮向上滚动时没有任何反应,但当我向下滚动页面滚动时。
在另一页中,我想要完全相反,我需要禁用向下滚动鼠标滚轮。因此,当我向下滚动时没有任何反应,但是当我向上滚动页面滚动时。
这就是我真正需要的,但如果您认为我需要解释更多,请告诉我,谢谢。
答案 0 :(得分:4)
防止鼠标向下滚动的情况(对于鼠标向上滚动,只需将比较运算符更改为'<'):
$(window).on("wheel mousewheel", function(e){
if(e.originalEvent.deltaY > 0) {
e.preventDefault();
return;
} else if (e.originalEvent.wheelDeltaY < 0) {
e.preventDefault();
return;
}
});
由于跨浏览器问题,我们需要检查两个值。
答案 1 :(得分:2)
此代码适用于ID为#34; mydiv&#34;的div。您可以将mydiv更改为正文或任何其他所需元素。该代码适用于所有浏览器。
<强> JS:强>
var mydiv = document.getElementById("mydiv");
if (mydiv.addEventListener) {
// IE9, Chrome, Safari, Opera
mydiv.addEventListener("mousewheel", MouseWheelHandler, false);
// Firefox
mydiv.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
}
// IE 6/7/8
else
mydiv.attachEvent("onmousewheel", MouseWheelHandler);
function MouseWheelHandler(e) {
// cross-browser wheel delta
var e = window.event || e; // old IE support
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
if(delta==1) // if mouse scrolls up
{
alert('up');
}
if(delta==-1) // if mouse scrolls down, we disable scrolling.
{
e.preventDefault();
e.stopPropagation();
return false;
}
return false;
}
注意:请记住将溢出设置为自动或滚动此功能。
一个工作示例:Click Here
希望这有帮助。
答案 2 :(得分:-2)
您可以尝试此操作以禁用鼠标滚动。我知道这不是你的问题,但我相信它可以帮助你。
<强> JS:强>
function disableMouseScroll() {
return false;
}
document.onmousewheel=disableMouseScroll;