如何为xy位置模仿鼠标悬停监听器

时间:2015-06-16 02:42:01

标签: snap.svg

我有一个超过1600个20x20像素正方形的snap.svg网格,我正在尝试找到一个最有效的跟踪方式,当一个移动点在每个方格内时。我能想到的就是循环遍历寻找isPointInside的所有方块:

for (var t = 0; t < numUnits; t++) {
    var square = squares[t];
    if (Snap.path.isPointInside(square, x, y)) {
        hits[t]++;
        break;
    }
}

如果有一种方法可以在每个方块上创建一个事件监听器,例如鼠标悬停或悬停,那么肯定会很好。

1 个答案:

答案 0 :(得分:0)

这可能取决于您想要的准确程度,以及元素的抽样是否有效。

如果是这样,您可以使用elementFromPoint

   var el = document.elementFromPoint(xArray[j]+8,yArray[j]+8);
   Snap(el).attr({ fill: 'red' });

注意,它与你的不完全匹配,但很接近,我猜是因为可能需要考虑的偏移量(我刚试过8)

jsfiddle