1

次のスクリプトを使用して、iPhone の Safari でアドレス バーを非表示にしています。

window.addEventListener("load",function() {
setTimeout(function(){
window.scrollTo(0, 1);
}, 0);
});

問題は、ページが完全に読み込まれずにユーザーが下にスクロールした場合、読み込みが完了すると再び元に戻ることです。これをより防御的なものにしたいので、ユーザーが電話を動かしてアドレスバーを自分でクリアしても、それが再び行われることはありません。

これはうまくいかなかった私の試みでした:

window.addEventListener("load",function() {
setTimeout(function(){
  if(window > 1){

  }
  else
  {
window.scrollTo(0, 1);
}}, 0);
});

if(!window ... を実行し、else を取り出したが、テスト目的でこのように保持したいと誰かが言った場合に備えて、間違って書いている可能性を示しています。

何か案は?

4

1 に答える 1

4

document.body.scrollTop単に代わりに使用しますwindow

window.addEventListener("load",function() {
    setTimeout(function() {
        if (document.body.scrollTop > 1) {
            // Do your testing here...
        } else {
            window.scrollTo(0, 1);
        }
    }, 0);
});

テストが完了したら、すべてを 1 行にまとめることができます。

window.addEventListener("load",function() {
    setTimeout(function() {
        document.body.scrollTop || window.scrollTo(0, 1);
    }, 0);
});
于 2012-08-10T18:09:09.827 に答える