Автоматическое скрытие проблемы с адресной строкой

Я скрываю свою адресную строку в Safari на iPhone, используя этот скрипт:

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(!... и вынуть остальное, но хотел сохранить его таким образом для целей тестирования, это исключает возможность того, что я напишу его неправильно.

Есть идеи?

1 ответ

Решение

Использование 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);
});

Когда вы закончите тестирование, вы можете свернуть все в одну строку:

window.addEventListener("load",function() {
    setTimeout(function() {
        document.body.scrollTop || window.scrollTo(0, 1);
    }, 0);
});
Другие вопросы по тегам