11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

Pour centrer verticalement une image j'ai bricolé la fonction permettant de faire un diaporama du tuto :

for (var i = 0 ; i < liens.length ; ++i) {
liens.onclick = function() {
big_photo.src = this.href;
big_photo.alt = this.alt;
var hauteur = (400-document.images[0].height)/2;
big_photo.style.marginTop = hauteur + 'px'; return false;
};
}
}

Les 2 lignes en bleue marchent super-bien mais seulement lorsque l'on clique sur une vignette pour la seconde fois, car la première fois la hauteur de l'image est celle de l'image précédente au lieu de la hauteur courante. Bref, dès que l'on a cliqué une fois sur chaque vignette tout est fonctionnel, mais pas la première fois.

Pas facile à expliquer mais si quelqu'un vait le bon coeur de jeter un coup d'oeil sur mmon site http://www.drillaudweb.info et me filer une ou 2 idées ce serait super.

Merci d'avance

Modifié par Merlin (17 Oct 2005 - 22:31)
Effectivement, cette méthode semble ne fonctionner (quelquesoit le navigateur) que si les images sont dans le cache. J'ai donc préchargé les images (voir le code sur mon site), mais je ne trouve pas cela très élégant. Ceci dit, le centrage fonctionne et le fonctionnement avec javascript désactivé reste correct.

Si quelqu'un a une autre solution, je suis preneur

A+
Merlin a écrit :
Effectivement, cette méthode semble ne fonctionner (quelquesoit le navigateur) que si les images sont dans le cache. J'ai donc préchargé les images (voir le code sur mon site), mais je ne trouve pas cela très élégant. Ceci dit, le centrage fonctionne et le fonctionnement avec javascript désactivé reste correct.

Si quelqu'un a une autre solution, je suis preneur

A+


Avec la propriété javascript :
complete
qui te renseigne si l'image a été complètement chargée afin de récupérer les dimensions correctes de celle-ci. J'ai utilisé cela dans ce vieux script
le test
Modifié par chmel (18 Oct 2005 - 12:33)