Jquery firefox中的SVG偏移问题
在Firefox 12.0或更高版本中,Jquery firefox中的SVG偏移问题,jquery,svg,jquery-svg,Jquery,Svg,Jquery Svg,在Firefox 12.0或更高版本中,.offset()和.position()在SVG(根)元素上调用时返回意外值 结果值是“左”组件最左边子级的x坐标和“顶”组件最上面子级的y坐标 $(this.SvgObject).offset().left / $(this.SvgObject).offset().top 返回firefox中的非预期值 但当我得到父偏移量时,它给出了正确的值(即): 但这不是正确的方法 请参阅。他们回答说: “不幸的是,我们不打算在短期内修复与SVG相关的bug:”
.offset()
和.position()
在SVG(根)元素上调用时返回意外值
结果值是“左”组件最左边子级的x坐标和“顶”组件最上面子级的y坐标
$(this.SvgObject).offset().left / $(this.SvgObject).offset().top
返回firefox中的非预期值
但当我得到父偏移量时,它给出了正确的值(即):
但这不是正确的方法
请参阅。他们回答说:
“不幸的是,我们不打算在短期内修复与SVG相关的bug:”
如何在SVG中解决这个问题?我也面临同样的问题,我只是在开始绘制拉斐尔图之前创建了一个假边界,解决了这个问题
// adding following rect just to set the boundary of svg element (firefox)
paper.rect(0,0,paperWidth,paperHeight,0).attr({stroke: "#fff"});
您可以使用:
var svg = $(this.SvgObject),
po = svg.offsetParent().offset(),
left = po.left + parseInt(svg.css("left"), 10),
top = po.top + parseInt(svg.css("top"), 10);
如果您的根svg元素有一个viewBox,那么可能是您的期望不正确,而不是Firefox或jquery中的错误。您没有向我们展示SVG,也没有告诉我们您希望从中得到什么数字。Robert>jquery最轻松的期望是在所有浏览器中都有相同的结果(错误或正确),这里显然不是这样。Chrome和FF返回不同的东西。
var svg = $(this.SvgObject),
po = svg.offsetParent().offset(),
left = po.left + parseInt(svg.css("left"), 10),
top = po.top + parseInt(svg.css("top"), 10);