[BUG] MouseEvent.MOUSE_WHEEL can not work with wmode="opaque" or "transparent"

最近在使用 flash 的時候發現,
滑鼠滾輪事件 ( MouseEvent.MOUSE_WHEEL ) 在 safari 無法偵測,
但 Chrome 還是很正常 ( 覺得 google 真的很厲害! )

problem 1:
在 Window 的 safari 不能滾動滑鼠:

solution 1:
將原來 wmode = opaque or transparent 改成 window,
這辦法最簡單,但這樣可能就沒辦法在 swf 上面再壓上其他的 div
或考慮用解法2 ( watch solution 2 )

problem 2:
在 Mac 的 safari 不能滾動滑鼠:

solution 2:
透過 domWheel 事件來做偵測,
    var scrollListener = function( e ){
        var delta;
        if ( e.wheelDelta ){
            delta = e.wheelDelta / 40;
        } else if ( e.detail ){
            delta = -e.detail;
        }
        //do stuff with delta
        console.log( delta );
    }
    if ( !document.attachEvent ) {
        window.addEventListener('DOMMouseScroll', scrollListener, false);
        window.addEventListener('mousewheel', scrollListener, false);
    }

留言