gpt4 book ai didi

javascript - 通过坐标在 Opera 的 SVG 中定位元素

转载 作者:搜寻专家 更新时间:2023-11-01 04:11:53 24 4
gpt4 key购买 nike

如何在给定坐标的情况下在 Opera 的 SVG 中定位元素?

elementFromPoint(x,y) 在 Firefox 上运行良好,但在 Opera 上似乎失败,总是返回整个 SVG 而不是特定元素。

有人可能想知道我为什么需要它。好吧,仅仅是因为我想突出显示光标下的 SVG 元素,并且因为在您使用鼠标移动之前,添加/删除光标下的元素时 Opera 不会触发任何事件。也就是说,当我添加一个新元素时,在我稍微移动鼠标之前它没有突出显示,这看起来不太好。

干杯,米哈伊尔。

最佳答案

在 Opera 中有 SVG1.1 的 SVGSVGElement.getIntersectionList .

var element= document.elementFromPoint(pageX, pageY);
if (element.localName.toLowerCase()=='svg' && 'getIntersectionList' in element) {
var svgxy= Element_getPageXY(svg); // by the usual offsetLeft/offsetParent etc. method
var rect= svg.createSVGRect();
rect.x= pageX-svgxy[0];
rect.y= pageY-svgxy[1];
rect.width=rect.height= 1;
var hits= svg.getIntersectionList(rect, null);
if (hits.length>0)
element= hits[hits.length-1];
}

[未经测试的代码,甚至可能有效。]

关于javascript - 通过坐标在 Opera 的 SVG 中定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2259613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com