chrome 调度轮事件

bel*_*ace 5 events google-chrome mousewheel dispatch

我正在尝试在 chrome 中发送轮子事件,但仍然无法成功。我正在使用 WheelEvent 对象,但似乎无法正确“初始化”它。无论我做什么,delta 总是 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)
}
Run Code Online (Sandbox Code Playgroud)

bel*_*ace 2

起初我不再需要这个功能,但最近我又回到了这个问题,并找到了一种在 Chrome 上正确调度轮子事件的方法。抱歉耽搁了,我完全忘记了这个问题。代码如下:

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

更多信息可以在这里找到。希望这可以帮助。

  • 这不再起作用,因为它已从 Chrome 中取出:https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/initWebkitWheelEvent$20/blink-dev/h_GoezQ4MQ4/Q5abFkhA76sJ (2认同)