我有一个带有可滚动 div 的网页。在可滚动 div 之上,我绝对定位了与可滚动 div 的一半重叠的 div。
当我将鼠标光标放在可滚动的 div 上时,我可以用鼠标滚轮滚动它。但是当我将光标移动到重叠的 div 上时,鼠标滚轮会停止滚动该 div(这是正确的行为,因为绝对定位的 div 不在可滚动的 div 内)。
问题:如何将绝对定位的 div 接收到的滚动事件传递或分派给这个底层的可滚动 div,以使这个绝对定位的 div 对鼠标滚轮事件“透明”。
我可以让它在 Chrome 中运行,但不能在 IE 和 Firefox 中运行。如何重写此代码以使其在 IE 和 Firefox 中工作?
if ($.browser.webkit) {    
    $(".overlap-container").bind("mousewheel", function (e) {
        var origEvent = e.originalEvent;
        var evt = document.createEvent("WheelEvent");
        evt.initWebKitWheelEvent(
        origEvent.wheelDeltaX,
        origEvent.wheelDeltaY,
        window,
        0,
        0,
        0,
        0,
        origEvent.ctrlKey,
        origEvent.altKey,
        origEvent.shiftKey,
        origEvent.metaKey);
        $(".scroll-container").get(0).dispatchEvent(evt);
    });
}
请参阅此处的示例:http: //jsfiddle.net/HAc4K/5
已编辑:此问题最初来自 jqGrid - 冻结的列不会对鼠标滚轮滚动做出反应。
在 Chrome 和 Firefox 中,支持很棒的 CSS 属性:pointer-events:none