2016-05-31 11 views
0

jqueryオフセット関数を使用すると、windowに対する相対的な要素の座標を見つけることができます。jqueryはこれをどうしますか?jqueryはどのように要素のオフセットを検出しますか?

+2

[jQueryの可能な複製は、ウィンドウに対して要素の位置を取得します](http://stackoverflow.com/questions/3714628/jquery-get-the-location-of-an-element-relative-to-window ) – shole

+1

あなたが本当に知りたいのであれば[ソースコード](http://james.padolsey.com/jquery/#v=1.11.2&fn=jQuery.fn.offset)を読んでください – charlietfl

+0

私は読んだが、私はしていない理解しています。私はjavascriptで新しいです – Fistright

答えて

-1

あなたは(.offsetParentを探している場合がございます)

Offset Parent

+0

私はこの値がどのように見つけられたかを言いたいと思います。その値を見つけるために関数が行う継承は何ですか? – Fistright

+0

要素が他の要素の内側にあり、#foo(親要素)に対して#barを配置したいとします。 var elem = $( "#bar"); var offset = elem.offset()。left - elem.parent().offset()。left; – Sami

+1

作業例 http://stackoverflow.com/questions/10954931/how-to-get-offset-relative-to-parent-in-jquery – Sami

1

jqueryのは、一般的に、クロスブラウザの方法で動作しようとしたが、それは根本的な選択肢と原則のいくつかを理解するのに役立つかもしれません。

Element.getBoundingClientRect()は、要素のサイズとその位置をブラウザのビューポートに対して返します。

最新のブラウザでは、ビューポートとウィンドウのサイズはwindow.innerHeightとそれに関連する(innerWidth、outerHeight、outerWidth)プロパティを使用して調べることができます。

ビューポートに対するfixed position要素の座標は、配置された要素が相対的なビューポートの境界に関して、computed styleの値を解釈することで取得できます。

フォールバックオプションは、要素のレンダリングされた文書内のオフセットの累積を計算するために、それらのoffsetParentチェーン内のすべてのHTMLobjectsのものとのHtmlElementのoffsetLeftoffsetTop値を合計し、文書の現在のXとYのスクロール位置について計算された値を調整することです。 window.scrollXのMDNの記事では、クロスブラウザ方式でスクロール位置を計算する方法の例を示します。

これは、jQueryコードまたは他のライブラリやプレーンなJavaScriptコードがウィンドウの位置を計算する方法についてのドキュメントリンクのセットです。私はjQueryが静かにあなたのために回避するかもしれないすべてのブラウザのバグを調査しようとしていません。

+0

jqueryがオフセット値をどのように計算しているかわかりません... – Fistright

関連する問題