javascript - $(object)[0].offsetTop 在 Chrome 中工作,但在 Firefox 中不起作用

标签 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  });

如果您想知道我需要这个做什么: 我想在矩形的垂直中心对齐可变字体大小的文本。然而,字体大小总是在字母的实际顶部上方有一点间隙。我想要的是实际的像素高度。字母上方的这个间隙正是我将“dominant-baseline”设置为“hanging”后“offsetTop”的值。

最佳答案

使用 $(element).offset() 代替 $(element)[0].offsetTop,它返回带有 Top 和 left 的对象。

关于javascript - $(object)[0].offsetTop 在 Chrome 中工作,但在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25951200/

相关文章:

jquery - 使用 jQuery 选项卡的谷歌浏览器 "An invalid form control is not focusable"

javascript - 无法禁用(设置为只读、保护、灰显等)字段

javascript - 请从此字符串中提取一些信息(没有正则表达式,以便我可以理解)

jquery - 使用 Twitter Bootstrap 在模式/对话框中确认删除?

Jquery 删除表格中第一行和最后一行的背景颜色

javascript - Chrome 网络请求阻止不起作用

python - 在 Python 中创建一个从 STDIO 读取并循环写入 STDOUT 的服务

javascript - 将日期选择器添加到文本框

javascript - 收到错误 : Failed to execute 'appendChild' on 'Node' : parameter 1 is not of type 'Node'

jquery - 如何使用 jQuery 脚本为我的网站创建幻灯片?