2017-01-05 13 views
2

jQueryのoffset()を使用して、サイズ変更されたsvg要素のパス要素の位置を返します。これは、拡張されていないSVGに関連するオフセットを返すサファリを除いて、すべてのブラウザで正常に機能しています。私はgetBBoxを使用しようとしましたが、値が正しくありません。SafariでのSVGパスの位置が正しくありません

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

どのように正しい位置を取得できますか?

Example Fiddle

+0

あなたはSVG要素で動作するようにjQueryを使用しないでください。 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にとって特別なことはありません。 –

関連する問題