Jquery firefox中的SVG偏移问题

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:”

在Firefox 12.0或更高版本中,
.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);