使用 jQuery .offset() 查找 SVG 的位置在 safari 中不起作用
Posted
技术标签:
【中文标题】使用 jQuery .offset() 查找 SVG 的位置在 safari 中不起作用【英文标题】:Find position of an SVG with jQuery .offset() not working in safari 【发布时间】:2022-01-08 19:40:27 【问题描述】:这段代码在 chrome 中运行良好
$("#el").hover(function ()
let position = $(this).offset();
$('#popover').css(position);
);
但是 offset() 总是在 safari 中返回这个:
top: 0, left: 0
#el 是一个 svg 圆
<circle id="el" cx="500" cy="153" r="50"></circle>
这是 jQuery 的问题吗?
工作示例:https://jsfiddle.net/82syz54m/1/
在 chrome 中:
在 Safari 中:
【问题讨论】:
这有帮助吗? ***.com/questions/54790402/… 这似乎是同样的问题,但我找不到如何使解决方案适应我的用例 我在jsfiddle中添加了一个例子。 【参考方案1】:以下代码兼容所有浏览器:
$("#el").hover(function ()
const circle = document.getElementById('el').getBoundingClientRect();
const position = left: circle.left, top: circle.top ;
$('#popover').css(position);
console.log(position)
);
【讨论】:
以上是关于使用 jQuery .offset() 查找 SVG 的位置在 safari 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
jquery offset获取div的位置top和left数值
如何在不使用jQuery的情况下获取元素的offset()。top值?