2012-01-12 14 views
2

他の誰かがIEで動作するposition()に問題がありましたか?私は中央に配置されているdivの左の位置を返そうとしています。 Chromeは342を返します。 IE9は0.5を返します。そのすべては何ですか?jquery position()がIE9で動作していない

var sp = $('.jcarousel-container').position(); 
    alert(sp.left) 

答えて

6

.offset()は、あなたのjsfiddle例ではIE9で仕事をしているようです:

var sp = $('.jcarousel-container').offset(); 
alert(sp.left) 
+0

優れています。大きな大きな感謝 –

0

私はこのコードを使って作業しています。おそらくあなたはそれを自分のものを修正するために使うことができます。

http://jsfiddle.net/fme6V/

+0

Ok。私はいくつかの顕著な情報が欠落している可能性があります。 divにはサイズが設定され、相対的な左右のマージンはautoに設定されているため、画面の中央に位置します。 –

+1

jsfiddleにコードを投稿できますか?そうすれば、それを見てみるほうが簡単になります。 ;) – Jeffrey

+0

http://jsfiddle.net/fme6V/1/ –

1

私が来ただけworkaraund:

http://jsfiddle.net/fme6V/7/

ここでコードがあります問題を解決するには、 var xpos_inside_parent = the_child.offset()。left - the_parent.offsetのようにすることでした。 ()。左; それは私のために働いた、しかし、私はすぐにjqueryで修正されることを願っています。 (例えば 'left:20px;')、これは私がCSSで位置を設定した場合、私にとっては些細なことです。すでに知られているので、jqueryで検索する必要はありません。

次の例は、 'margin:0 auto'を中心とする要素では機能しないことを示しています。また、私の暫定的な修正は、オフセットを引くことを示しています: http://jsfiddle.net/maxoriola/MAwAH/4/

+0

ありがとう。これはすばらしかったし、IE11でも関連しています。 position()が他のブラウザと比較して相対的であることは知っているのが良いですが、あなたの作業はかなり簡単に実装できます。 – Jake

関連する問題