检测鼠标位置是否在一组位置规则内?
问题描述:
我有一些JavaScript对象,比如这个(它的伪所以我知道如果语法错误):检测鼠标位置是否在一组位置规则内?
[{ "divid":"1","x1":"35","y1":"100","height":"150","width":"150" },
{ "divid":"2","x1":"45","y1":"110","height":"150","width":"150" },
{ "divid":"3","x1":"55","y1":"120","height":"150","width":"150" },
{ "divid":"4","x1":"65","y1":"130","height":"150","width":"150" }]
而且我curruently检测与jQuery鼠标的位置是不错,但......
我想要检测当我处于其中一个位置时自动返回该JavaScript集的第一列或多列,就像我在查询它,如果位置在其中一个返回列集列表之间。
我无法想象,每当鼠标位置发生变化时,我将不得不对每个人做一个.each()
?也许我会......
如果任何人之前做过这样的事情,请指点我正确的方向。
感谢 -Josh
答
一个简单的方法来做到这一点可能是绝对位置的一些动态创建的div和鼠标悬停事件指派给他们。他们必须具有较高的Z指数,不可见,并高于其他内容。
答
你可以根据你选择的范例获得你的慕斯offset,说你的父div, 然后比较返回值和你从你的json得到的返回值!
getposOffset:function(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
如果它匹配,然后触发显示您需要的事件!
答
我不知道这个想法会为你想要的东西的工作,但我没有条条框框小算盘......
如何使用图像地图? :P
它需要最少的编码和处理,它的工作原理!我覆盖了一个映射的图像,并在区域上添加了悬停事件。我发布了一个demo here - 这不完美,但更多的是一个概念证明。