$(object)[0] .offsetTop在Chrome中工作但在Firefox中没有

时间:2014-09-20 17:00:10

标签: javascript jquery google-chrome firefox

我正在尝试访问此属性:

$(text)[0].offsetTop

它在Chrome中运行良好,但在Firefox中我得到'未定义'。 有没有办法在所有浏览器中执行此操作?

请参阅:http://jsfiddle.net/qgqr5m6n/3/

$("body").css("margin", "0px");
var svgNS = "http://www.w3.org/2000/svg";

var svgBox = document.createElementNS(svgNS, "svg");
$("body").append(svgBox);  
var text = document.createElementNS(svgNS, "text");
$(svgBox).append(text);

text.innerHTML = "Hello World";

$(text).attr({ "dominant-baseline": "hanging"});
console.log($(text)[0].offsetTop);

$(text).attr({ "x": 0 , "y":  0  });

如果你想知道我需要什么: 我想在矩形的VERTICAL中心对齐可变字体大小的文本。但是,字体大小总是包含在字母实际顶部之上的一点间隙。我想要的是实际的像素高度。在将“显性基线”设置为“悬挂”之后,字母上方的这个间隙正好是“offsetTop”的值。

1 个答案:

答案 0 :(得分:1)

而不是$(element)[0] .offsetTop,使用$(element).offset()返回一个具有Top和left的对象。