我正在實現使用Mootools的拖放界面,其中創建了拖動元素的副本副本並使用鼠標移動。我希望用戶能夠使用鼠標滾輪來保持這個鬼元素。問題是,鬼本身正在吸收mousewheel事件,導致它不滾動它後面的頁面(在這種情況下,一個特定的div與滾動條)。處理元素背後的鼠標事件
在Firefox中,我通過將「pointer-events:none」樣式應用於ghost來解決這個問題,這會導致mousewheel事件像我想要的那樣通過。但似乎我需要針對IE的不同解決方案。我打算在ghost元素上捕捉mousewheel事件,並將它們轉發到容器div,但我似乎無法讓新事件觸發標準鼠標滾輪行爲(即滾動div)。有誰知道我能做到這一點?
這裏就是我在談論的一個非常簡單的例子:http://jsfiddle.net/jqL8Z/3/
需要注意的是,如果你鼠標滾輪在「拖動元素」,頁面不滾動。這是因爲滾動是主div的溢出的一部分,而拖動框不是該div的成員,所以它的鼠標事件將起泡到主體。我不想讓它成爲div的成員,因爲那樣當它在div外面拖動時它就會隱形。
我試過下面的代碼捕獲並重定向事件:
textClone.addEvent('mousewheel', function(e) {
var mouseWheelEvent = document.createEvent('MouseEvents');
mouseWheelEvent.initMouseEvent('mousewheel', true, true, window, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
treeDiv.dispatchEvent(mouseWheelEvent);
});
,但沒有運氣,有什麼地方人仍下落不明。
[ppointer-events](https://developer.mozilla.org/en/CSS/pointer-events)也許? –
我不明白,我可以使用sortables,拖動一個項目,然後鼠標滾動頁面w/o任何限制,直到我找到放棄它的地方。 http://jsfiddle.net/dimitar/Wzrt7/ –
我應該澄清,這是我拖動的div元素,所以這可能是爲什麼它阻止mousewheel事件。我想用一個更簡單的元素作爲鬼魂可能是一個選項。 –