19

テキスト ノードの幾何学的位置 (つまり、親要素、ページなどからの上/左オフセット) を取得することは可能ですか?

4

6 に答える 6

14

直接ではありません。TextNode には、ビューポート上の位置を測定するための元の IE オフセット* (および同様の) 拡張機能がありません。

IE でのみ、TextRange オブジェクトを作成し、苦労してそれを TextNode の境界に合わせようとし、TextRange の boundingLeft/boundingTop を測定して、親要素の位置に追加することができます (通常の方法で取得)。 . ただし、これは不安定な可能性のある単一ブラウザー ソリューションの一連の作業です。

回避できる可能性のある別のアプローチは、テキストをスパン要素でラップし(ドキュメント内、またはスクリプトによって動的および/または一時的に)、スパンを使用して位置を測定することです。位置に影響を与える可能性のあるスタイル。ただし、ラップされたスパンでは期待される右/下の値が得られない場合があることに注意してください。何をしたいかによっては、最初と最後の文字をラップしたり、その他の配置をしたりすることになるかもしれません。

要約すると、うーん、何も良いことはありません。

于 2008-12-29T01:16:17.493 に答える
0

これを行うための組み込みのクロスブラウザーの方法はありません。私はディメンション プラグインで jQuery を使用します: http://brandonaaron.net/docs/dimensions/

これはクロスブラウザであり、高さ、幅、x & y オフセットなどを提供します。

于 2008-12-28T23:30:06.130 に答える
0

この記事をご覧ください。offsetParentプロパティを使用して再帰的にオフセットを計算します。

このようなブラウザごとに異なるものについては、独自のメソッドをローリングするよりも jquery を常にお勧めします。jquery CSS 関数には、必要なメソッドがあるようです!

于 2008-12-28T20:42:14.067 に答える