通过拖动元素传递 mouseover 事件
Posted
技术标签:
【中文标题】通过拖动元素传递 mouseover 事件【英文标题】:pass mouseover event through dragging element 【发布时间】:2012-10-06 13:59:03 【问题描述】:我有一个自定义的可拖动元素(拖动开始于单击并结束于单击),可以将其拖放到某些区域。在鼠标悬停区域决定它是否接受当前可拖动,并分别改变它的颜色。在客户决定将可拖动元素放置在光标的上方和左侧之前,一切都像魅力一样发挥作用,这就是故事的开始。
当我移动它时,我意识到鼠标悬停事件现在转到可拖动区域,而不是区域。我做了一些搜索,发现了魔法
pointer-events:none
CSS 属性。不幸的是,这在 IE9 中不起作用,而 it 是我们的目标浏览器。
这是一个简单的例子:http://jsfiddle.net/q9njK/5/
问题是:我能不能让它在 IE9 中工作,而不是直接观察 mousemove 并计算指针指向哪个区域?
Edit_1:“直接观看 mousemove”我的意思是这样的解决方案:http://jsbin.com/uhuto 在 mousemove 的情况下它会很慢而且很难看。嗯,我知道,“缓慢而丑陋”是 IE 的座右铭,但如果在某个地方存在更优雅的解决方案,我想知道。
Edit_2:似乎 IE9 不支持 pointer-events: none
,即使是 SVG(这是一个示例,在 IE9 中不起作用:http://jsfiddle.net/q9njK/9/),所以除了绑定到 document.mousemove 之外别无他法。还是这样?
【问题讨论】:
你可以试试这里实现的解决方案***.com/a/6938521/122005 我没有 IE 来测试,所以不能确定,但如果你使用图像,这个答案可能会起作用? ***.com/a/4839672/891971 【参考方案1】:不,相信我;我试过了
遇到了和你完全相同的问题,结果把我的头撞到墙上,只发现你做了什么;指针事件有效,但在 IE9 中无效。
您将不得不使用 js 来克服这个问题 - 抱歉。
一切顺利,
-莱德杰
【讨论】:
实际上,我们已经成功说服客户他不想要它。成功。以上是关于通过拖动元素传递 mouseover 事件的主要内容,如果未能解决你的问题,请参考以下文章
mouse事件(mouseleave,mouseenter,mouseout,mouseover)
mouseovermouseout,mouseentermouseleave区别