Bug Firefox recuperation de la taille de l'image

malkomad Messages postés 2 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 22 mars 2010 - 20 mars 2010 à 11:31
malkomad Messages postés 2 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 22 mars 2010 - 22 mars 2010 à 14:57
Bonjour a tous,

Je développe une site de type galerie, et j'ai un pb sous firefox ( uniquement ) lorsque je souhaite récupérer la taille de l'image en vue de la centrer en position absolute.

But : des vignettes sont affichées sur la page, lors d'un clic sur une vignette,
je charge l'image originale en javascript et l'affiche au centre de l'écran en surimpression ( avec reste de la page grisée ), un click sur l'image et elle disparait, on revient sur le tableau de vignettes...

Mon problème est que lors du 1 er chargement de l'image, les valeurs width et height sont fausses et retournent un truc du genre width 24, height 24 quelle que soit la taille réelle de l'image ...
Du coup l'image n'est pas centrée, mais pas du tout !!
Si je fais disparaitre l'image et que je reclick sur la même vignette, la taille de l'image est récupérée correctement cette fois ci, et mon image est bien centrée...
Mais il faut que l'image originale se soit déjà affichée au moins une fois ds le navigateur...
voici le code de la fonction ( un div(id=comObject) vide est deja insere dans la page html pour permettre cette fonction )

function divUpImage(url){
document.getElementById('voile').zIndex='2'; // grise la totalite de la page
document.getElementById('voile').className='visible';
document.getElementById('voile').style.position = "absolute";
var inner = "";
document.getElementById('comObject').innerHTML =inner;
document.getElementById('comObject').style.zIndex=3;
document.getElementById('comObject').style.position = "absolute";
var x_width = document.getElementById('img_f').width / 2;
var x_height = document.getElementById('img_f').height / 2;
alert( x_width+" - "+ x_height );
var x_left = screen.width/2;
var x_top = screen.height/2;
x_left = x_left - x_width;
x_top = x_top - x_height;
document.getElementById('comObject').style.left= x_left;
document.getElementById('comObject').style.top= x_top;
document.getElementById('comObject').style.visibility = "visible";

}
hormis le "voile" qui ne s'affiche pas sous IE, tout fonctionne correctement sur les autres navigateurs testes ( Chrome, IE ).
Mais sur FF, le premier affichage ne veut rien savoir et retourne des dimensions 24x24 ...

pour le voir : http://long.board.looping.free.fr/galerie.php?type=percings

Merci d'avance

Mad pour les intimes ...

2 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
20 mars 2010 à 14:37
apparement tant que firefox n'a pas charge l'image dans le cache il ne connait pas sa taille il faudrait essayer de faire un prechargement de l'image puis utiliser (complet )qui sert a savoir si l'image est charge et la je pense que sa serais bon

tu peut aussi essayer ce script lien
0
malkomad Messages postés 2 Date d'inscription lundi 24 octobre 2005 Statut Membre Dernière intervention 22 mars 2010
22 mars 2010 à 14:57
Ok, merci pour ta reponse et le script fourni ...
vu que mon image est en position absolute, je suppose qu'il n'existe pas de moyen de le centrer de facon "automatique"...

Me trompe-je ?

je vais continuer mes recherches

Mad pour les intimes ...
0
Rejoignez-nous