问题是如此之久,以至于想出一个总结它的标题被证明是棘手的。
所以无论如何。我有一个div具有overflow: auto和经常不流过这样滚动条上出现。然后我有一个div具有position: fixed,并位于内容顶部的div。
div
overflow: auto
position: fixed
现在,当我div在html主体本身上有固定位置时,只要将鼠标悬停在html主体上,就可以使用滚轮滚动文档div。前面提到的不太幸运div。
有没有一种方法可以滚动div“固定位置”中的“位置”?
我注意到,即使在固定div上捕获滚动事件也不是一件容易的事。除非固定的div本身是可滚动的,否则不会触发该事件。
做了一个简单的jsFiddle,为了方便起见,我剥离了所有我尝试过的JavaScript。
编辑:我需要使用固定的div保留其他鼠标功能,因此关闭指针事件并不是我的解决方案。
var fixedElement = document.getElementById(“fixed”);
function fixedScrolled(e) { var evt = window.event || e; var delta = evt.detail ? evt.detail * (-120) : evt.wheelDelta; //delta returns +120 when wheel is scrolled up, -120 when scrolled down $("#content").scrollTop($("#content").scrollTop() - delta); } var mousewheelevt = (/Gecko\//i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel"; if (fixedElement.attachEvent) fixedElement.attachEvent("on" + mousewheelevt, fixedScrolled); else if (fixedElement.addEventListener) fixedElement.addEventListener(mousewheelevt, fixedScrolled, false);