2015-09-01 65 views
0

下面的代碼工作在Chrome 44 D3 SVG選擇 「offsetParent」 屬性,但不能在Firefox 40:類型錯誤在Firefox

var width = 460, height = 300; 

var svg = d3.select("body").append("svg") 
    .attr("width", width) 
    .attr("height", height) 
    .append("g") 
    .attr("transform", "translate(" + width/2 + "," + height/2 + ")"); 

svg.append("text").text("Offset = " + svg.property("offsetParent").offsetTop) 

火狐拋出一個異常TypeError: svg.property(...) is undefined

這是一個jsfiddle的代碼。

這是一個錯誤,也就是說,我應該報告嗎? 有沒有其他辦法可以在Firefox中獲得父級偏移?

回答

1

當然要報告它,但作爲Chrome的錯誤,不是Firefox的。 offsetParent僅爲HTML元素屬性。當在一個SVG元素上調用時,它應該返回undefined,這正是Firefox所做的。

您可以嘗試getBoundingClientRect左側/頂部的值可能是您正在尋找的。

+0

感謝您的幫助! –

+0

最後,我實際上需要圍繞svg的div的「property(」offsetParent「)。offsetTop」(這實際上是Chrome在我的例子中返回的)而不是'getBoundingClientRect.top'。爲什麼他們不會回報相同的價值讓我感到困惑... –