我想通过在页面中指定点值来获取元素。
var point = this.svgRenderer.getPoint(serPoint, chart);
这将返回页面的确切点位置。该点包含一些SVG元素,可以是圆形或矩形,也可以是图像或其他元素。我想根据点位置获取元素。这可能吗?
答案 0 :(得分:9)
document.elementFromPoint(x, y);
https://developer.mozilla.org/en-US/docs/DOM/document.elementFromPoint
答案 1 :(得分:3)
答案 2 :(得分:2)
也许您可以使用高度和宽度为1的矩形作为参数从SVG-DOM尝试getIntersectionList:
完整示例:
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100" height="100" viewBox="0 0 100 100" onclick="elementsAtEventPosition(event)">
<script>
function elementsAtEventPosition(event) {
var svgRootNode = document.documentElement;
var rect = svgRootNode.createSVGRect();
rect.x = event.clientX;
rect.y = event.clientY;
rect.width = 1;
rect.height = 1;
alert(svgRootNode.getIntersectionList(rect, svgRootNode).length);
}
</script>
<rect x="10" y="10" width="50" height="50" fill="black" stroke="black" stroke-width="1" />
</svg>