2010-12-14 12 views
1

私は、あなたが上に乗っている要素の左と上の位置を取得する次のコードを持っています。それはSafariとIEで正しい結果を生み出しますが、あなたがFirefoxに乗せたimgの位置を得ることができません - それは0、0を返します。jquery - Firefoxで位置の問題が発生する

私はそれを関数内にまっすぐに置くと動作するように変数として設定することと関係があると思います。私はそれを元の状態に戻すことができるので、変数として設定する必要があります。

$.fn.hoverAnimationTwo = function() { 
    return $(this).each(function() { 

     var originalLeftTwo = parseInt($(this).css("left")); 
     var originalTopTwo = parseInt($(this).css("top")); 

     return $(this).hover(function() { 
      $(this).animate({ 
       width: "17px", 
       height: "17px", 
       left: originalLeftTwo - 5, 
       top: originalTopTwo - 5 
      }, 100); 
     },function() { 

      $(this).animate({ 
       width: "7px", 
       height: "7px", 
       left: originalLeftTwo, 
       top: originalTopTwo 
      }, 100); 
     }); 
    }); 
} 

$(".myImg").hoverAnimationTwo(); 

非常に奇妙なことは、すべてのコードをjsfiddleにコピーすることができ、動作するようです。

編集: OK ...これはジャバスクリプトの問題ではないことが判明しました。これは、ページの他の部分で、要素を完全に私の悪い数字で始まるクラスに与えていたので、私はよく知っておくべきです!

答えて

2

CSSのプロパティに依存すると、ブラウザに矛盾があるようです。 .position()または.offset()(どちらか該当する方)を試してみましたか?

http://api.jquery.com/offset/またはhttp://api.jquery.com/position/

+0

これは、同じ結果を生成します...でも、私はあなたの思考が好き。 – Tom

+0

非常に奇妙です。残念ながら、それは私が持っていたすべてです。 :) –

関連する問題