Bonjour, bonsoir tout le monde,
J´ai décidé de faire ce topic, car cela fait plusieurs fois que je vois des sites qui utilisent des roll-overs.
Définition d´un roll-over:
C´est lorsqu´une image change quand le visiteur passe la souris dessus. ( Vous pouvez trouver un exemple à cette page: http://www.siteduzero.com/html/scripts.php descendez un peu et vous trouverez "roll-over" )
Et donc, sur ces sites, souvent il y a une grosse image, et lorsque le visiteur pointe cette image, une autre s´affiche. Le premier exemple qui me tombe sous la main: [ http://handgames.tk/ ]
Vous remarquerez que les trois images en haut possèdent un roll-over. Et bien si vous faites bien attention, lorsque vous passez le curseur dessu pour la première fois, l´image de s´affiche pas instantanément! En revanche, lorsque vous repassez une deuxième fois, elle s´affiche de suite.
Pourquoi? C´est tout simple: au premier passage de la souris, le navigateur télécharge l´image depuis le server, la met dans le cache ( temporaire), puis l´affiche. Lorsque vous repassez une deuxième fois, l´image est DÉJÀ dans le cache, le navigateur n´a donc pas à la télécharger, et donc l´affichage se fait de manière instantanée. Même moi qui suis en 1024/128 je ressens ce décalage, alors imaginez pour les 56Kbps!!!
La solution? Elle est tout simple, et donctionne avec quasiment tous les navigateurs! Il suffit de preloader les images ( pour ceux qui ne parlent pas anglais, on peut décomposer le mot en deux: pre ( avant) et load ( charger)). Cette méthode consiste à charger l´image avant que le navigateur n´ait à l´afficher, ce qui fait qu´elle sera affichée beaucoup plus rapidement, voire instantanément.
Comment procéder? Il vous suffit d´insérer, dans un coin de votre site ( en bas de la page de préférence) le code classique pour ajouter une image, à la seule différence que vous ajouter l´attribut:
style="display: none;"
Qui dit au navigateur de ne PAS afficher l´image.
Je vous entends déjà dire "Ben... On affiche l´image, mais on l´affiche pas??? Il se fout de moi lui!!!"
Récapitulons:
Si vous faites un roll-over sans précharger l´image, au premier passage de la souris, l´image devra être téléchargée ( Cf plus haut) au moment du passage de la souris, ce qui provoquera une attente du côté du visiteur.
En revanche, si vous faites un roll-over avant le passage de la souris, l´image s´affichera instantanément lors du passage, puisqu´elle aura déjà été chargée! Et techniquement, la méthode consiste à dire au navigateur d´insérer une image tout en la cachant, ce qui fait qu´elle est téléchargée dès le chargement de la page, comme n´importe quelle image normalement affichée!
Vous me suivez?
Le code devra donc ressembler à ça:
<body>
/ /corps de votre page
/ /Puis, tout à la fin, et pour chaque image secondaire de chaque roll-over:
<img style="display: none;" src="dossier/image.ext" / *différents attributs*/>
</body>
Voilà, j´espère que vous avez compris, si qq chose n´est pas clair n´hésitez pas à demander ici, il est 0h30 ( et non 24h30, private joke ^^) et donc je n´ai plus l´esprit très clair...
Bon coding à tous!!!
@+,
MathieuN7