[英]How to fire scroll (mousewheel) event with specific delta in JavaScript?
我正在尝试通过document.createEvent
创建自定义事件来触发 chrome 中的滚动事件,我想触发绑定到滚动或鼠标滚轮侦听器的所有函数(我不确定它是否滚动浏览器本身?)。 我通过onmousewheel
侦听器捕获事件,但是当我用来指定它们的值时,事件对象具有deltaX == 0 && deltaY == 0
:
document.documentElement.onmousewheel = function(e) {
console.log(e.deltaX, e.deltaY, e.wheelDeltaX, e.wheelDeltaY) // 0, 0, 0, 0
}
var e = document.createEvent('WheelEvent');
e.initMouseEvent('mousewheel', true, true, window, 120, 0, 0, 0, 0, 0, 0, 0, 0,
0, null);
e.wheelDeltaY = 120;
e.deltaY = 120;
document.documentElement.dispatchEvent(e);
我不确定我是否必须使用这种类型的事件和这种初始化类型。 那么如何指定事件的增量值呢?
首先,这已被弃用,您根本不应使用initMouseEvent
。
您应该做的是使用delta
params https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/WheelEvent创建WheelEvent
,然后如果您想继续使用自定义 delta 值或类似的东西来调度它那。
window.addEventListener('wheel', function(e) { console.log(e.deltaY) if (e.deltaY < 0) { console.log('scrolling up'); document.getElementById('status').innerHTML = "scroll up"; } if (e.deltaY > 0) { console.log('scrolling down'); document.getElementById('status').innerHTML = "scroll down"; } });
<div id="status"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.