getBoundingClientRect()はSVGに埋め込まれたforeignObject XHTML要素を返しますか?
console.log(document.getElementById('foo').getBoundingClientRect());
... ...
<svg viewBox="0 0 200 200" width="100%" height="100%" …>
<g transform="rotate(45) skewX(10)">
<foreignObject x="100" y="200" width="10" …>
<body xmlns="http://www.w3.org/1999/xhtml">
<p id="foo">Hi Mom!</p>
</body>
</foreignObject>
</g>
</svg>
をこのようなSVGドキュメントを考えてみましょう...と、このようなJavaScriptコードことに注意してください:HTMLドキュメントのbody
はSVGにオフセットされて
- 回転させて斜めにします。
- SVGは1 SVG単位が1画面ピクセルと同じにならないようにスケーリングされます。
getBoundingClientRect()
は、画面の境界にある境界の四角形の左/右/上/下をWebブラウザで返しますか?
body
のコンテキスト内でオブジェクトの座標を返して、foreignObject
のスペースを拡大/縮小/回転/歪みSVGのスクリーンピクセルに変換する必要がありますか?
これは、この仕様がどのようにこのをとするかを明確に解釈するために、これがどのように動作するべきかについて、あなたの意見にはあまり興味がありません。
はここでFirefoxが後者を行いながらクロム前者を行うことを示し、この単純な例です:http://phrogz.net/SVG/html_location_in_svg_in_html.xhtml
編集:ここでは、このテストケースのクローム/ Safariの間違った取り扱いを説明Webkitのバグです:https://bugs.webkit.org/show_bug.cgi?id=71819