用中间鼠标滚轮禁用浏览器滚动

3

我的网页上有一个Flash元素,您可以使用中间鼠标滚轮与之交互。页面很长。因此,当使用鼠标滚轮滚动时,它会与Flash元素进行交互并滚动浏览器窗口。

是否有一种方法可以在Flash元素处于活动状态时禁用浏览器滚动?

4个回答

12
<!-- disables browser mouse scrolling -->
<script type="text/javascript">
if(window.addEventListener){
    window.addEventListener('DOMMouseScroll',wheel,false);
}

function wheel(event)
{
    event.preventDefault();
    event.returnValue=false;
}
window.onmousewheel=document.onmousewheel=wheel;
</script>

我从Flash MouseWheelTrap中“提取”了这个函数,可以在这里找到它: http://code.google.com/p/mousewheeltrap/


我更喜欢这个解决方案,因为它还允许通过拖动中间按钮来阻止滚动。 - Kos

5

您可以使用:

document.body.style.overflow=allowScroll?"":"hidden";

其中allowScroll是一个布尔值。


非常简单,我应该自己想到的。现在我有点懒了!所以为了完成脚本,在禁用浏览器滚动时,只需切换allowScroll = true/false即可。谢谢! - Peter Craig

2
window.onscroll = function() {
    document.body.scrollTop = 0;
}


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