我正在尝试通过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);
我不确定我必须使用这种类型的事件和这种初始化类型。那么如何指定事件的delta值呢?
答案 0 :(得分:2)
首先,这已被弃用,您根本不应该使用initMouseEvent
。
您应该使用WheelEvent
参数https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/WheelEvent创建delta
,然后在您要继续使用自定义delta值或类似内容时调度它。
答案 1 :(得分:-1)
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>