хромовое диспетчерское колесо - PullRequest
4 голосов
/ 20 июля 2011

Я пытаюсь отправить событие колеса в chrome, но все еще не могу сделать это.Я использую объект 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)
}

1 Ответ

2 голосов
/ 20 октября 2012

Сначала мне эта функциональность больше не нужна, но недавно я вернулся к этой проблеме и нашел способ правильно обработать событие wheel в Chrome. Извините за задержку, я полностью забыл об этой проблеме. Код выглядит следующим образом:

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

Более подробную информацию можно найти здесь . Надеюсь, это поможет.

...