2014-09-20 29 views
0

我試圖訪問該屬性:

$(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 }); 

如果你想知道什麼,我需要這樣的: 我要對齊的可變字體大小的文本在一個矩形的垂直中心。然而,字體大小總是包含在字母的實際頂部之上的一個小間隙。我想要的是實際的像素高度。字母上方的這個間隔正好是我將「顯性 - 基線」設置爲「掛起」之後的「offsetTop」的值。

+0

[this]的可能重複(http://stackoverflow.com/questions/6777506/offsettop-vs-jquery-offset-top) – 2014-09-20 17:03:17

回答

1

改爲$(element)[0] .offsetTop,使用$(element).offset()返回Top和left的對象。

+0

謝謝!但是,當我嘗試$(文本).offsetTop(),我得到「未捕獲TypeError:undefined不是一個函數」... – Linus 2014-09-20 19:59:00

+0

請考慮適用於'代碼'正確的格式。 – Krumia 2014-09-25 03:08:45

相關問題