修改
也许我正在接近这个错误 - 有没有人知道任何阻止页面滚动鼠标滚轮的方法?甚至可以禁用它吗?
-
我有一个div容器,里面装有较小的div,当鼠标滚轮滚动时会生成动画。这不是一个带溢出的div:隐藏,它没有滚动区域 - 它只是一个简单的jquery动画(动画效果很好btw)。
不幸的是,尽管我尽了最大努力,但是当鼠标在容器div中时,我无法阻止整个页面滚动。
我正在使用Brandon Aaron的jQuery鼠标插件(这应该可以解决我的问题,但遗憾的是它不是。)
这是我的javascript:
$('#containerDiv').mousewheel(function(event,delta,deltaX,deltaY){
/* all of this is supposed to stop the page from scrolling... but it doesnt*/
event.bubbles=false;
event.cancelBubble=true;
if(event.preventDefault) event.preventDefault();
if(event.stopPropagation) event.stopPropagation();
if(event.stopImmediatePropagation) event.stopImmediatePropagation();
$(document).blur();
$(this).focus();
/*this function just animates the divs inside the container divs*/
animateDivs(delta);
});
我已经完成了这些问题:
Prevent scrolling of parent element?
stop mousewheel's continued effect
stop scrolling of webpage with jquery
并且他们似乎都没有帮助。
有人能为这个问题提供更好的解决方案吗?
答案 0 :(得分:2)
您可以将galambalazs的solution用作Guilherme Torres Castro answered。但它并没有取消scroll
事件。如果要取消滚动事件,则必须添加它。
fiddle solution ntownsend's post的FINAL SOLUTION is here启示。
此解决方案的问题是“点击”(隐藏/显示)滚动条。所以我在window.onScroll事件和我的https://stackoverflow.com/a/3352244/1102223
上添加滚动到实际滚动位置当我尝试滚动时,最终解决方案有问题,但事件在滚动之前不存在{{3}}