我正在尝试访问此属性:
$(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”的值。
答案 0 :(得分:1)
而不是$(element)[0] .offsetTop,使用$(element).offset()返回一个具有Top和left的对象。