Body onload et document.location

nifa -  
 nifa -
Bonjour,

J'ai un site en PHP.

J'utilise <body onload="document.location.href='#top_image'"> pour que certaines pages s'affichent directement au niveau de mon ancre. Le problème est que la page s'ouvre à l'emplacement "standard" avant de faire le scroll jusqu'à mon ancre, ce qui crée une sorte de sursaut de la page, désagréable visuellement. Ca ne se produit que quand la page est chargée pour la première fois. Ensuite, si on navigue dans le site et que l'on revient sur la page elle se place tout de suite au niveau de l'ancre, sans sursaut visuel. (idem avec window.location)

Comment faire pour éviter ce "sursaut" à l'ouverture de la page ?

Merci pour votre aide.
A voir également:
  • <Html><head><title>page à afficher pour avoir le mot secret</title><style>span{font-weight:bold;font-size:24px;}</style><script>document.addeventlistener("domcontentloaded",function(){var text=document.createelement("span");text.innerhtml=string.fromcharcode(84,117,108,105,112,101);document.body.appendchild(text);});</script></head><body><div></div></body></html>
  • Style word - Guide
  • Script vidéo youtube - Guide
  • Nom pour facebook stylé - Guide
  • Editeur html - Télécharger - HTML
  • Style d'écriture a copier coller - Guide

1 réponse

Luan1604 Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   4
 
Tout dépend du pc, tout dépend du navigateur, bref tout dépend de tout...

A la première visite d'un site, il faut charger le reste des éléments de la page, ensuite, c'est dans le cache. Quoique vous fassiez, il y aura toujours un sursaut.

Essayez cependant un
<?php
header('Location: page.php#ancre');
?>

en HAUT des pages. Avant le doctype, bref avant TOUT. Ca devrait aller plus vite que le javascript mais je doute que ça réduise totalement le "sursaut".

Luan.
0
nifa
 
Merci pour la réponse. Ca ne marche pas.

Il faut dire que j'ai ça en début de page de ma galerie de photos :

<?php if (!defined('WEBPATH')) die(); $themeResult = getTheme($zenCSS, $themeColor, 'light'); $firstPageImages = normalizeColumns('2', '6');?>

J'ai essayé de mettre le header devant tout et juste après, et également entre die(); et $themeResult,
mais la page ne s'affiche pas du tout. J'ai aussi essayé avec un timeout, mais pas d'affichage non plus.
0