7

divwithがfloat: rightあり、ビューポートの上部からの距離を取得しようとしています。Safari を除くすべてのブラウザで、期待どおりの結果が得られelement.getBoundingClientRect().topます。Safari は、ビューポートではなく、ページの上部からの要素の距離を報告しているようです。これは、このメソッドの仕様で定義されている内容に反しています(私が理解しているように)。Safari がここのルールに従っていないだけですか、それとも他のブラウザは、私が見ていない私の間違いをより寛容に扱っているのでしょうか?

4

2 に答える 2

8

これは、Safari がロード イベントで要素とスクロール位置を報告する方法に影響を与えるバグのようです。まったく同じ呼び出しを 500 ミリ秒のタイムアウトで実行すると、すべてが期待どおりに機能します。

バグレポートが返ってきたら更新します。

于 2014-10-13T21:14:30.057 に答える
0

同じ問題があり、500ms のトリックでは解決しません。

ジョブは、本文の最後にスクリプト (空のスクリプトも含む) を追加することです。

そのような :

[...]
  <script type="text/javascript">
    //content doesn't matter
  </script>
</body>
[...]
于 2021-03-03T12:35:42.877 に答える