2017-01-05 46 views
2

我使用jQuery的offset()來返回調整大小的svg元素中路徑元素的位置。這在所有瀏覽器中都能正常工作,除了safari返回的(我推測)與未縮放的SVG相關的偏移量。我曾嘗試使用getBBox,但值不正確。Safari上的SVG路徑位置不正確

$('body').append('<div style="position:absolute">Pos:'+ $('#path4108').offset()+'</div>'); 

任何想法如何檢索正確的位置?

Example Fiddle

+0

應避免使用jQuery與SVG元素的工作。 jQuery僅用於處理HTML元素,除少數例外不支持SVG元素。 –

回答

0

奇怪。由於原生javascript函數.getBoundingClientRect();正在工作,似乎是jQuery的一個錯誤。

$('body').append('<div class="position">Top:'+ 
$('#path4108')[0].getBoundingClientRect().top+ '<br> Left:'+ $('#path4108')[0].getBoundingClientRect().left+ '</div>'); 

https://jsfiddle.net/j7q2j6Le/3/

+0

由於AFAICS [jQuery.fn.offset](https://github.com/jquery/jquery/blob/bf3a43eff8682b59cec785be6003753fa4b93706/src/offset.js#L70)對Safari沒有任何特別的功能,所以更可能是Safari中的一個錯誤。 –