Javascript 处理元素后面的鼠标事件

Javascript 处理元素后面的鼠标事件,javascript,events,mootools,mouse,Javascript,Events,Mootools,Mouse,我正在使用Mootools实现一个拖放界面,其中创建了一个被拖动元素的重影副本,并用鼠标移动。我希望用户能够使用鼠标滚轮滚动,同时持有这个鬼元素。问题在于重影本身正在吸收mousewheel事件,导致它无法滚动后面的页面(在本例中,是带有滚动条的特定div) 在Firefox中,我通过对ghost应用“指针事件:无”样式来解决这个问题,这会导致mousewheel事件像我希望的那样直接通过。但似乎我需要一个不同的IE解决方案。我计划捕获ghost元素上的鼠标滚轮事件并将其转发到容器div,但我似

我正在使用Mootools实现一个拖放界面,其中创建了一个被拖动元素的重影副本,并用鼠标移动。我希望用户能够使用鼠标滚轮滚动,同时持有这个鬼元素。问题在于重影本身正在吸收mousewheel事件,导致它无法滚动后面的页面(在本例中,是带有滚动条的特定div)

在Firefox中,我通过对ghost应用“指针事件:无”样式来解决这个问题,这会导致mousewheel事件像我希望的那样直接通过。但似乎我需要一个不同的IE解决方案。我计划捕获ghost元素上的鼠标滚轮事件并将其转发到容器div,但我似乎无法使新事件触发标准鼠标滚轮行为(即滚动div)。有人知道我怎样才能做到这一点吗

下面是我所说的一个非常基本的例子:

请注意,如果将鼠标滚轮移到“拖动元素”上,则页面不会滚动。这是因为滚动是主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);
    });

但是运气不好,仍然缺少一些东西。

通过调用页面的鼠标滚轮事件来响应div的鼠标滚轮事件可能会实现您的目标。

我最终做的是更改拖放逻辑,将ghost div保持在鼠标一侧而不是下方。这样它就不会捕获任何鼠标事件。

也许?我不明白,我可以使用排序表,拖动一个项目,然后在没有任何约束的情况下鼠标滚轮页面,直到找到放置它的位置。我应该澄清这是我正在拖动的一个div元素,所以这可能就是它阻止mouseweel事件的原因。我想使用一个更简单的元素作为ghost可能是一种选择。你应该自己构建一个JSFIDLE-这取决于你如何构造拖拽和在哪里注入元素,也许委托可以与一些
元素一起工作。滚动到
位-但在你展示一些代码之前,这都是理论。好的,我添加了一个简单的示例来说明我所说的内容。我对div元素的理解是错误的,这实际上是因为元素的层次结构。这基本上就是我要做的,但是firevent()只触发自定义处理程序。看起来dispatchEvent()可以做到这一点,但它对我不起作用,我用一个例子更新了它。