处理元素后面的鼠标事件
Handling Mouse Events Behind An Element
我正在使用Mootools实现一个拖放界面,其中创建了被拖动元素的幽灵副本,并随鼠标移动。我希望用户能够使用鼠标滚轮滚动,同时保持这个幽灵元素。问题是幽灵本身正在吸收鼠标滚轮事件,导致它不滚动它后面的页面(在这种情况下,一个带有滚动条的特定div)。
在Firefox中,我通过对幽灵应用"pointer-events: none"样式来解决这个问题,这导致鼠标滚轮事件像我想要的那样直接通过。但似乎我需要一个不同的解决方案的IE。我计划在ghost元素上捕获鼠标滚轮事件并将它们转发到容器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);
});
通过调用页面的鼠标滚轮事件来响应div的鼠标滚轮事件可能会实现您的目标。
我最终做的是改变我的拖放逻辑,将幽灵div保持在鼠标的一侧,而不是在它的下方。这样它就不会捕获任何鼠标事件。
相关文章:
- JsFiddle上的鼠标事件不起作用
- node-webkit-从父窗口捕获iframe鼠标事件
- 鼠标事件在OpenLaszlo应用程序中不起作用
- 为画布绘图添加鼠标事件
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- KineticJS鼠标事件问题
- GWT-允许鼠标事件在两个叠加画布之间传播
- 为什么不是't html<对象>元素响应鼠标事件
- 如何恢复Kinetic.js鼠标事件
- 鼠标事件's在CtrlKey不起作用的情况下单击
- 鼠标事件,我的代码出了什么问题
- 撤消javascript中的所有鼠标事件处理程序
- JQuery facebook订阅插件鼠标事件
- Javascript/jQuery-鼠标事件没有在html上触发,添加了动态
- React模板鼠标事件在容器's鼠标事件
- 使用两个重叠的画布,我可以将鼠标事件传递到底部的画布吗
- 谷歌地图 api v3 搜索多边形没有鼠标事件
- CSS 溢出边界半径鼠标事件
- 将触摸事件转换为鼠标事件仅每秒有效一次
- D3.js鼠标事件不起作用