1

编辑:

也许我正在接近这个错误 - 有没有人知道阻止页面用鼠标滚轮滚动的任何方法?这甚至可以禁用吗?

--

我有一个 div 容器,里面装满了较小的 div,当鼠标滚轮滚动时会产生动画。这不是一个带有溢出:隐藏的 div,它没有滚动区域 - 它只是一个简单的 jquery 动画(顺便说一句,动画效果很好)。

不幸的是,尽管我尽了最大的努力,当鼠标在容器 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);
});

我已经解决了这些问题:

防止滚动父元素?

停止鼠标滚轮的持续效果

用jquery停止滚动网页

他们似乎都没有帮助。

谁能为这个问题提供更好的解决方案?

4

1 回答 1

2

您可以使用 galambalazs 的解决方案,正如Guilherme Torres Castro 回答的那样。但它不会取消scroll事件。如果要取消滚动事件,则必须添加它。我的小提琴解决方案灵感来自ntownsend 的帖子

此解决方案的问题是“闪烁”(隐藏/显示)滚动条。所以我将滚动添加到 window.onScroll 事件的实际滚动位置,我的最终解决方案就在这里

最终解决方案在我尝试滚动时出现问题,但 beforeScroll 事件不存在https://stackoverflow.com/a/3352244/1102223

于 2012-07-13T11:17:35.107 回答