Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2011, 22h43   #1
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 82
Points : 27
Points : 27
Par défaut Variable qui retourne 0 au premier clique

Bonjour,

J'essaye de faire une petite galerie photo personnelle, et je bloque sur le centrage des photos au milieu de la page.

Voici mon code complet :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
window.onload = init;
 
/*
 - Recherche de toutes les images dans la div #simpleBox
 - Création d'une boucle pour afficher ces images
 - L'SRC de l'image sur laquelle je clique est stoqué dans la variable 'actualImg'
 - On a plus besoin de rester dans la fonction litérale, alors on termine les configurations dans une fonction extérieure (boxCFG)
 */
function init() {
	cibleDiv = document.getElementById("simpleBox");
	cibleImg = cibleDiv.getElementsByTagName("img");
 
	for (var i = 0; i < cibleImg.length; i++) {
		cibleImg[i].addEventListener('click', function() {
			actualImg = this.src;
			callFunction = boxCFG();
		}, false);
	}
}
 
/*
 - Création d'une balise "img", introduction de cette balise dans la div #simpleBox
 - L'attribut SRC de l'image sur laquelle on clique (actualImg) est modifié, on change son chemin en remplacent "small" par "original" (noms des dossiers),
   cela permettra d'afficher l'image en taille réelle.
 - Positionnement de l'image au centre de la fenêtre
 */
function boxCFG() {
    var imgTag = document.createElement("img");
	cibleDiv.appendChild(imgTag);
 
	origToBigImg = actualImg.replace("small", "original");
	imgTag.src = origToBigImg;
    imgTag.className = "originalImg";
 
	parseInt(imgTag.style.marginLeft = "-" + (imgTag.width / 2) + "px");
	parseInt(imgTag.style.marginTop = "-" + (imgTag.height / 2) + "px");
}
Mon problème concerne les deux dernières lignes, qui servent à positionner l'image au milieu de la page :

Lorsqu'on clique une fois sur toutes les images, les valeurs de imgTag.width et height valent 0 car l'image se positionne à 0 pixel, et j'ai pu le savoir en mettant un alert dessus.

Mais quand je clique une deuxième fois dessus, le bonnes valeurs sont retrouvées, le calcul peut s'effectuer et mon image s'affiche au milieu de la page, comme je le voulais.

Le problème doit peut-être venir du DOM, car pour que les valeurs d'une image soit détectée, il faut obligatoirement que l'évènement click passe dessus 1 fois.

Pour tester vous même, voici le script en ligne : http://chokgfx.free.fr/uploads/galer...s/preview.html

Merci.

EDIT : Problème résolu. Il fallait que les images soit chargées avant qu'elles puissent données des informations.
chok371 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h42.


 
 
 
 
Partenaires

Hébergement Web