2009-11-17 67 views
0

我有一些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

回答

1

一个简单的方法来做到这一点可能是绝对位置的一些动态创建的div和鼠标悬停事件指派给他们。他们必须具有较高的Z指数,不可见,并高于其他内容。

0

你可以根据你选择的范例获得你的慕斯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; 

如果它匹配,然后触发显示您需要的事件!

0

我不知道这个想法会为你想要的东西的工作,但我没有条条框框小算盘......

如何使用图像地图? :P

它需要最少的编码和处理,它的工作原理!我覆盖了一个映射的图像,并在区域上添加了悬停事件。我发布了一个demo here - 这不完美,但更多的是一个概念证明。