在另一个DOM元素上调度鼠标滚轮事件

STO*_*STO 10 html javascript dom

我有一个带有可滚动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);
    });
}
Run Code Online (Sandbox Code Playgroud)

请参见此处的示例:http: //jsfiddle.net/HAc4K/5

编辑:此问题最初来自jqGrid - 冻结列不会对鼠标滚轮进行反应.

在Chrome和Firefox中支持很棒的CSS属性: pointer-events:none

Vim*_*tan 3

看起来像 jQuery 的一个已知问题:IE 不支持 OriginalEvent