4

ホイールイベントをクロームでディスパッチしようとしていますが、それでもできません。WheelEventオブジェクトを使用していますが、正しく「初期化」できないようです。私が何をするにしても、デルタは常に0です。仕様を見ましたが、助けにはなりませんでした。さらに興味深いことに、実際にマウスホイールでスクロールしてそのイベントをディスパッチしようとしたときにイベントをキャプチャしましたが、デルタは0でした。誰かがそのような問題に遭遇しましたか?これはおそらくバグですか?どんな助けでも素晴らしいでしょう!

//dispatching the wheel event
var evt = document.createEvent("WheelEvent");
evt.initEvent("mousewheel", true, true, null, 0, 0, 0, 0, 0, false, false, false, false, 0, null, -120);
window.dispatchEvent(evt)

// catching the wheel event
window.addEventListener('mousewheel', callback, true);
callback = function(evt){
       console.log(evt)
}
4

1 に答える 1

2

最初はこの機能はもう必要ありませんでしたが、最近この問題に戻り、Chromeでホイールイベントを適切にディスパッチする方法を見つけました。遅れて申し訳ありませんが、私はこの問題を完全に忘れました。コードは次のとおりです。

var evt = document.createEvent("WheelEvent");
evt.initWebKitWheelEvent(deltaX, deltaY, window, screenX, screenY, clientX,
                        clientY, ctrlKey, altKey, shiftKey, metaKey);
node.dispatchEvent(evt);

詳細については、こちらをご覧ください。お役に立てれば。

于 2012-10-19T20:13:02.533 に答える