检测鼠标位置是否在一组位置规则内?

时间:2009-11-17 23:02:31

标签: javascript jquery cursor detect

我有一些像这样的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" }]

我正在用jQuery检测鼠标位置,这很好但是......

我想检测当我超过其中一个位置时,会自动返回该JavaScript集的第一列或多列,就像我在查询其中一列之间的位置返回列集列表一样。

我无法想象每次鼠标位置发生变化时我都必须对所有这些进行.each()?也许我会...

如果有人做过类似的事情,请指出我正确的方向。

由于 -Josh

3 个答案:

答案 0 :(得分:1)

执行此操作的简单方法可能是绝对定位一些动态创建的div并为其分配mouseOver事件。它们必须具有高z-index,不可见,并且漂浮在其他内容之上。

答案 1 :(得分: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;

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

答案 2 :(得分:0)

我不知道这个想法是否适用于你想要的东西,但我在盒子外面做了一点思考......

使用图像地图怎么样? :P

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