2011-07-20 59 views
3

我試圖在chrome中調度輪子事件,但仍然無法做到。我正在使用WheelEvent對象,但似乎只是不能「初始化」它的權利。無論我做什麼,三角洲總是0.我看着specification,但沒有幫助。更有意思的是,當我用鼠標滾輪實際滾動並試圖發送該事件時,我捕獲了該事件,但再次出現增量爲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

請給我們一些代碼。你如何註冊事件監聽器,或者你只是設置回調?你怎麼派發這個活動? – Peter

+0

我添加了代碼。事件被捕獲,但頁面不滾動,因爲增量爲0. – bellpeace

+0

好吧,我已經建立了原因。我使用了錯誤的init函數。正確的是[this](http://developer.apple.com/library/safari/#documentation/appleapplications/reference/WebKitDOMRef/WheelEvent_idl/Classes/WheelEvent/index.html)。但是我的頁面仍然拒絕向下滾動。 – bellpeace

回答

2

起初我不需要這個功能,但我最近回到了這個問題,並找到了一種在Chrome上正確調度wheel事件的方法。對不起,我完全忘記了這個問題。代碼如下:

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

更多信息可查詢here。 希望這有助於。

+0

由於已從Chrome中刪除,因此無法使用:https://groups.google.com/a/chromium.org/forum/#!searchin/blink-dev/initWebkitWheelEvent$20/blink-dev/h_GoezQ4MQ4/ Q5abFkhA76sJ –