小编典典

当鼠标位于固定div上方时,滚动底层div的方法吗?

css

问题是如此之久,以至于想出一个总结它的标题被证明是棘手的。

所以无论如何。我有一个div具有overflow: auto和经常不流过这样滚动条上出现。然后我有一个div具有position: fixed,并位于内容顶部的div

现在,当我div在html主体本身上有固定位置时,只要将鼠标悬停在html主体上,就可以使用滚轮滚动文档div。前面提到的不太幸运div

有没有一种方法可以滚动div“固定位置”中的“位置”?

我注意到,即使在固定div上捕获滚动事件也不是一件容易的事。除非固定的div本身是可滚动的,否则不会触发该事件。

做了一个简单的jsFiddle,为了方便起见,我剥离了所有我尝试过的JavaScript。

编辑:我需要使用固定的div保留其他鼠标功能,因此关闭指针事件并不是我的解决方案。


阅读 520

收藏
2020-05-16

共1个答案

小编典典

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);
2020-05-16