0

これを書く場合:

        $(document).on("click", function () {
             window.scroll( 0, 70 );
        });

常に動作しますが、これを書く場合:

        window.onload = function () {
             window.scroll( 0, 70 );
        }

これは、サファリやクロムの「シークレットウィンドウ」では機能しません。他のブラウザでは動作します。なぜ?

4

1 に答える 1

3

非常に簡単に言えば、主な理由は、バインドしているさまざまなブラウザー/dom 要素の状態です。

最初のものでは、jQuery を使用してclickイベントにバインドしています。これにより、実際にクリックするまでに、ドキュメントの が初期化され、効果が表示されるのに十分なスクロールが残っていることが保証されます。 .<body/>body

2 番目の例では、ウィンドウのイベントにバインドしてonloadいます。実際には、ウィンドウbodyがロードされる前、またはスクロール可能な領域が十分に蓄積される前に発生するため、効果が表示されません。

理想的なテクニックは、代わりに使用することです

$(document).ready(function() {
    window.scrollTo(0,70);
});
于 2012-10-08T10:33:29.357 に答える