Je connais une façon de procéder.
<body onload="setTimeout(function() {window.scrollTo(0, 1)}, 100)">
...
</body>
Mais cela ne fonctionne que si la page est suffisamment grande pour être défilée. Si la page correspond à l'écran, la fonction ci-dessus ne fonctionnera pas. Comment masquer la barre d'adresse dans ce cas? Je dois le faire fonctionner avec l'iphone, l'ipad, les appareils Android.
Vous pouvez peut-être régler la hauteur minimale sur le corps plus grand. 480px hauteur de l'écran en mode vertical + 60px hauteur de la barre d'adresse = 540px.
Exemple:
body { min-height:540px; }
body[orient="portrait"] { min-height:540px; }
body[orient="landscape"] { min-height:400px; }
iPhone:
Fonctionne uniquement si "l'application" mobile est ajoutée à l'écran d'accueil (via l'icône plus -> ajouter à l'écran d'accueil)
<meta name="Apple-mobile-web-app-capable" content="yes" />
Je n'ai aucune expérience avec d'autres OS mobiles, mais une recherche rapide sur Google pour masquer la barre d'URL du navigateur Android a abouti à une solution similaire à la vôtre, avec un window.scrollTo.
de http://mobile.tutsplus.com/tutorials/mobile-web-apps/remove-address-bar/ j'ai trouvé
function hideAddressBar() {
if(!window.location.hash) {
if(document.height < window.outerHeight)
document.body.style.height = (window.outerHeight + 50) + 'px';
setTimeout( function(){
window.scrollTo(0, 1);
document.body.style.height = 'auto';
}, 50 );
}
}
Un peu modifié
fonctionne assez bien dans certains navigateurs, mais au moins je ne peux pas le faire fonctionner Android Chrome.