いくつかのコンテキスト:特定の要素へのスクロールをアニメーション化しようとしています。これを実現するには、から次のコードを呼び出します$(document).ready()。
$('html, body').animate(                                                                      
  // properties                                                                                 
  {
    scrollTop: $("#element").offset().top                                 
  },
  // duration                                                                                   
  500,
  // easing
  "easeOutCubic"
);
私の問題は、一部の要素で$("#element").offset().topは、アニメーションを開始してからターゲット要素に到達するまでの間に実際に変化することです。
私の要素は完全に静的です。DOM 操作は実行せず、サイズも変更しません。CSS でサイズを指定し、 になるまで待って$(document).ready()、下にスクロールします。
私は何が間違っているのでしょうか?アニメーションの開始が早すぎますか、それともイベント ハンドラーが正しくありませんか? アニメーションの行為が何らかの形で要素の位置を変更している可能性はありますか?
おそらく関連するポイント:
- Google Web フォントと複数の
顔のスタイルを使用しています。おそらく、レンダリングのバグがありますか? - これをGoogle Chromeで実行しています。
確認したところ、この問題は Safari では発生しません。編集:いいえ、Safariでも発生します。