javascript – 当内部元素滚动位置到达顶部/底部时,阻止滚动父元素?
作者:互联网
参见英文答案 > prevent Scroll bubbling from element to window 14个
我有一个小“浮动工具箱” – 一个位置固定的div;溢出:汽车.
工作得很好.
但是当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素“接管”“滚动请求”:工具框后面的文档滚动.
– 哪个很烦人而不是用户“要求”.
我正在使用jQuery并认为我可以使用event.stoppropagation()来阻止此行为:
$(“#toolBox”).scroll(function(event){event.stoppropagation()});
它确实进入了函数,但仍然无论如何传播(文档滚动)
– 在SO(和Google)上搜索这个主题非常困难,所以我不得不问:
如何防止滚动事件的传播/冒泡?
编辑:
工作解决方案多亏了amustill(以及Brandon Aaron的鼠标插件:
https://github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js
$(".ToolPage").bind('mousewheel', function(e, d)
var t = $(this);
if (d > 0 && t.scrollTop() === 0) {
e.preventDefault();
}
else {
if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight - t.innerHeight())) {
e.preventDefault();
}
}
});
解决方法:
使用Brandon Aaron的Mousewheel plugin是可能的.
这是一个演示:http://jsbin.com/jivutakama/edit?html,js,output
标签:event-bubbling,event-propagation,javascript,jquery,scroll 来源: https://codeday.me/bug/20190911/1804506.html