我该如何禁用窗口鼠标滚轮滚动...?

8

我正在开发一个嵌入网页的Canvas应用。我已经实现了使用鼠标滚轮进行画布缩放,但不幸的是,这也会滚动页面,因为它是文章的一部分。

有没有办法在我使用鼠标滚轮滚动DOM元素时阻止窗口滚动?!

2个回答

9

为鼠标滚轮(非Gecko)/ DOMMouseScroll(非IE)附加事件处理程序并阻止其默认操作(即滚动内容):

如果(element.addEventListener)
    element.addEventListener(“DOMMouseScroll”,function(event){
        event.preventDefault();
    },false);
否则
    element.attachEvent(“mousewheel”,function(){
        返回 false;
    })

希望这可以帮到您!


如果元素是带有必要可滚动内容的iframe呢?那该怎么办?在这种情况下,对iframe对象执行此操作并不起作用。 - vsync

0

我知道这篇文章有点旧了,但是对于那些需要搜索的人来说仍然可能有所帮助。

我已经编写了一个jQuery插件来处理此问题:$.disablescroll

它不仅可以处理鼠标滚轮事件,还可以处理触摸移动和按键事件,这些事件通常会触发滚动。

// disable all scrolling:
$(window).disablescroll();

// enable scrolling again:
$(window).disablescroll("undo");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接