Hacer el iPhone ocultar la barra de URL es bastante simple, es necesario ejecutar el JavaScript siguiente:
window.scrollTo(0, 1);
Sin embargo hay la pregunta de cuándo? Tienes que hacer esto una vez la altura es correcta por lo que el iPhone puede desplazarse hasta el primer píxel de el documento, de lo contrario se tratará, entonces la altura cargará forzando la barra de URL de nuevo a ver.
Puedes esperar hasta que las imágenes han cargado y se activa el evento window.onload , pero esto no siempre funciona, si todo está en caché, se activa el evento antes de tiempo y la scrollTo nunca tiene la oportunidad de saltar. Aquí hay un ejemplo usando window.onload: http://jsbin.com/edifu4/4/
Yo personalmente uso un temporizador durante 1 segundo - que es suficiente tiempo en un dispositivo móvil mientras espera para hacer, pero lo suficientemente larga que no se dispara demasiado pronto :
setTimeout(function() { window.scrollTo(0, 1); }, 1000);
sin embargo, sólo desea que esto configuración si se trata de un iPhone (o simplemente móvil) del navegador, por lo que una aspiración astuto (yo no suelen alentar esto, pero estoy cómodo con esto evitar que los navegadores de escritorio "normales" salten un píxel):
/mobile/i.test(navigator.userAgent) && setTimeout(function
() { window.scrollTo(0, 1); }, 1000);
La última parte de esta, y esta es la parte que parece ser falta de algunos ejemplos que he visto en la web es la siguiente: si el usuario vinculada específicamente a un fragmento de URL, es decir, la url tiene un hash en , no quieres saltar. Así que si navego a http://full-frontal.org/tickets#dayconf - Quiero que el navegador para desplazarse forma natural al elemento cuyo id es dayconf, y no salta a la parte superior usando scrollTo (0, 1):
/mobile/i.test(navigator.userAgent) && !location.hash &&
setTimeout(function() { window.scrollTo(0, 1); }, 1000);
probar esto en un iPhone (o simulador) http://jsbin.com/edifu4/10 y verá que solo se desplazará cuando haya aterrizado en la página sin un fragmento de url.
La solución window.scrollTo es más independiente del dispositivo. Buen consejo, Minh. – jfroom
@jfroom: Es solo una solución fácil para el problema. Puedes llamarlo consejo o truco, pero funciona aunque :) –
esta solución ya no funciona en iOS7 Safari ninguna idea sobre cómo hacerlo en iOS7 –