当内部元素滚动位置达到顶部/底部时,阻止父元素的滚动?
我有一个小的“浮动工具箱” - 一个带有.工作正常。position:fixed; overflow:auto
但是,当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素“接管”“滚动请求”:工具箱后面的文档将滚动。
- 这很烦人,而不是用户“要求”的东西。
我正在使用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();
}
}
});