Я тоже с этим боролся.Сначала я попробовал CSS-класс (.stretch), определяющий 200% высоты и видимый переполнение, затем переключал это в HTML с помощью скрипта до и после scrollTo.Это не работает, потому что вычисленная высота 100% относится к доступным измерениям области просмотра минус весь браузер Chrome (восстановление строки состояния обратно на место).
В конце концов мне пришлось запросить конкретные стили для динамического применения черезDOM API.Чтобы добавить к вашему дополнительному фрагменту:
var CSS = document.documentElement.style;
/mobile/i.test(navigator.userAgent) && !pageYOffset && !location.hash && setTimeout(function () {
CSS.height = '200%';
CSS.overflow = 'visible';
window.scrollTo(0, 1);
CSS.height = window.innerHeight + 'px';
CSS.overflow = 'hidden';
}, 1000);
Однако я бы порекомендовал расширить метод Скотта Джела, который учитывает незначительные различия между прокруткой Safari в Android / iOS:
https://gist.github.com/scottjehl/1183357