問題

私はjQueryのoffset()関数でクロスブラウザの問題を抱えています。たとえば、アンカータグのオフセットを探しています

例えば。 $('#anchorid').offset().top

  • Firefox 3.6 = 205
  • IE8 = 204で
  • IE7 = 553で

あなたが見ることができるように、返された各値の違い。私はFF&の違いにあまり関心がありません。 IE8ですが、私はIE7と他のものと一緒です。

同じまたは類似のクロスブラウザまたはこれに対する可能性のある修正に使用できる別の機能はありますか?

  ベストアンサー

マークアップに何か間違った(非クロスブラウザ)がある可能性があります。しかし、代わりにネイティブのjavascriptを使ってみることができます。

 document.getElementById('anchorid').offsetTop
 

ページ全体でオフセットを取得したい場合は、次のような関数を使用できます。

 function findTotalOffset(obj) {
  var ol = ot = 0;
  if (obj.offsetParent) {
    do {
      ol += obj.offsetLeft;
      ot += obj.offsetTop;
    }while (obj = obj.offsetParent);
  }
  return {left : ol, top : ot};
}
 

  同じタグがついた質問を見る

javascriptjqueryinternet-explorer-7cross-browseroffset