在给定坐标下获取SVG-Object_s?
我想通过坐标从SVG文件中获取对象ID 例如在在给定坐标下获取SVG-Object_s?,svg,coordinates,Svg,Coordinates,我想通过坐标从SVG文件中获取对象ID 例如在 有一个方法,但它只返回最上面的元素。要获取某个点下的所有元素,可以找到最上面的元素,将其隐藏,然后再次查看该点,直到不再存在其他元素: var elementsAt = function( x, y ){ var elements = [], current = document.elementFromPoint( x, y ); // at least one element was found and it's inside
有一个方法,但它只返回最上面的元素。要获取某个点下的所有元素,可以找到最上面的元素,将其隐藏,然后再次查看该点,直到不再存在其他元素:
var elementsAt = function( x, y ){
var elements = [], current = document.elementFromPoint( x, y );
// at least one element was found and it's inside a ViewportElement
// otherwise it would traverse up to the <html> root of jsfiddle webiste.
while( current && current.nearestViewportElement ){
elements.push( current );
// hide the element and look again
current.style.display = "none";
current = document.elementFromPoint( x, y );
}
// restore the display
elements.forEach( function( elm ){
elm.style.display = '';
});
return elements;
}
var elementsAt=函数(x,y){
var elements=[],current=document.elementFromPoint(x,y);
//至少找到了一个元素,它位于ViewportElement中
//否则它将遍历到jsfiddle webiste的根。
while(current&¤t.nearestViewportElement){
元素。推动(当前);
//隐藏元素并再次查看
current.style.display=“无”;
当前=document.elementFromPoint(x,y);
}
//恢复显示
元素。forEach(函数(elm){
elm.style.display='';
});
返回元素;
}
如果你想得到答案,你需要提供更多的信息。您使用的是哪种编程语言?您使用过任何库吗?它主要是这个单一任务-所以语言并不重要-快速和肮脏的脚本编写就可以了。PHP会非常好,因为SVG是通过PHP生成的——但即使这不是最优的,我想能够解决getObjectsAt任务的语言也会做得更好;)添加一点细节:我生成了非周期模式(即Penrose)——由manny多边形平铺的大型SVG。现在我不想尝试在这些非周期网格上构建一个细胞自动机(比如Conways GOL)。问题是获取邻域资源的颜色-我希望通过getObjectAt(x,y)之类的东西来选择它。再次感谢您!非常有用。