Заставить iPhone скрывать панель url довольно просто, вам нужно запустить следующий JavaScript:
window.scrollTo(0, 1);
Однако возникает вопрос о том, когда? Вы должны сделать это, как только высота правильная, так что iPhone может прокручиваться до первого пикселя документ, в противном случае он попытается, то высота будет загружать форсирование панель url назад для просмотра.
Вы можете подождать, пока изображения не будут загружены, а window.onload события, но это не всегда работает, если все кэшировано, событие срабатывает слишком рано, и прокрутка никогда не может прыгать. Вот пример использования window.onload: http://jsbin.com/edifu4/4/
Я лично использую таймер на 1 секунду - это достаточно времени на пока вы ждете рендера, но достаточно долго, чтобы не срабатывает слишком рано:
setTimeout(function () { window.scrollTo(0, 1); }, 1000);
Однако вы хотите, чтобы это было настроено, если это iPhone (или просто мобильный) браузер, так что подлый взгляд (я вообще не рекомендую это, но мне это нравится, чтобы предотвратить "обычные" настольные браузеры от прыжка на один пиксель):
/mobile/i.test(navigator.userAgent) && setTimeout(function
() { window.scrollTo(0, 1); }, 1000);
Самая последняя часть этого, и это та часть, которая, кажется, отсутствует в некоторых примерах, которые я видел в Интернете, это: если пользователь, конкретно связанный с фрагментом URL-адреса, то есть URL-адрес имеет хэш это, вы не хотите прыгать. Поэтому, если я перейду к http://full-frontal.org/tickets#dayconf - я хочу, чтобы браузер прокручивал естественно, к элементу, чей id является dayconf, а не прыгать в начало используя scrollTo (0, 1):
/mobile/i.test(navigator.userAgent) && !location.hash &&
setTimeout(function () { window.scrollTo(0, 1); }, 1000);
Попробуйте это на iPhone (или симуляторе) http://jsbin.com/edifu4/10и вы увидите, что он будет прокручиваться только тогда, когда вы приземлились на странице без фрагмента url.