IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Script qui marche après un reload de la page


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut Script qui marche après un reload de la page
    Bonjour,
    J'ai fait un petit script de galerie photo, il est vraiment basic. Mais le problème est que la première fois que le script est appelé il ne marche pas, toutes les photos sont les unes sur les autres. Mais lorsque je recharge la page tout marche niquel.
    Comment faire pour eviter cela.
    Merci d'avance.

    voici le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
     
    var timer, wImage, imageLeft, gal, hGallery;
    var tabImages = new Array();
    var pos = 0;
    var valIncre = 2;
    var oui = true;
    var time = 20;
     
    function move() {
    	for (i in tabImages) {
    		imageLeft = parseInt(tabImages[i].style.left);
    		wImage = tabImages[i].width;
    		tabImages[i].style.left = imageLeft + valIncre + "px";
    		if (imageLeft > pos - wImage) {
    			tabImages[i].style.left = imageLeft - pos + "px"
    		}
    		;
    	}
    	timer = setTimeout("move()", time)
    }
    onload = function() {
    	gal = document.getElementById("gallery");
     
    	for (i = 0; i != 8; i++) {
    		tabImages[i] = new Image();
    		tabImages[i].src = "photos/" + i + ".jpg";
    		tabImages[i].id = "slider";
    		gal.appendChild(tabImages[i]);
    	}
     
    	gal.style.display = "block";
    	for (i in tabImages) {
    		tabImages[i].style.left = pos + "px";
    		hGallery = gal.offsetHeight;
    		tabImages[i].style.top = (hGallery - tabImages[i].height) / 2 + "px";
    		tabImages[i].style.display = "block";
    		pos += tabImages[i].width;
    	}
    	move();
    }

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut.

    Cela vient probablement du fait que lors du premier appel de ta page, tu appelles la fonction move() avant que les images ne soient chargées, ce qui provoque une erreur.
    Lorsque tu recharges la page, les images sont déjà dans le cache, donc l'appel à move se passe correctement.

    Pour régler le problème, voir la FAQ : http://javascript.developpez.com/faq...argementImages
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    Merci de ta réponse, mais déjà j'ai pas mis la dernière version du code .
    Mais aussi la FAQ explique pour des images présentes dans des balise img, et je ne voit pas trop le rapport avec mon code.
    Merci

    dernière version
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    38
    39
    40
    41
    42
    43
    44
    var timer, wImage, imageLeft, gal, hGallery;
    var tabImages = new Array();
    var pos = 0;
    var valIncre = 2;
    var oui = true;
    var time = 20;
    var stop =-86;
     
    function move() {
    	stop+=2;
    	for (i in tabImages) {
    		imageLeft = parseInt(tabImages[i].style.left);
    		wImage = tabImages[i].width;
    		tabImages[i].style.left = imageLeft + valIncre + "px";
    		if (imageLeft > pos - wImage) {
    			tabImages[i].style.left = imageLeft - pos + "px";
    			tabImages[i].style.display = "block";
    		}
    	}
    	if(stop==172){
    	timer = setTimeout("move()", 500);
    	stop=0;
    	}
    	else
    		timer = setTimeout("move()", time);
    }
    onload = function() {
    	gal = document.getElementById("gallery");
     
    	for (i = 0; i != 8; i++) {
    		tabImages[i] = new Image();
    		tabImages[i].src = "photos/" + i + ".jpg";
    		tabImages[i].id = "slider";
    		gal.appendChild(tabImages[i]);
    	}
     
    	gal.style.display = "block";
    	tabImages[0].style.display = "block";
    	for (i in tabImages) {
    		tabImages[i].style.left = pos + "px";	
    		pos += tabImages[i].width;
    	}
    	move();
    }

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Sumoner Voir le message
    Mais aussi la FAQ explique pour des images présentes dans des balise img, et je ne voit pas trop le rapport avec mon code.
    Même si l'exemple se base sur des balises img, le principe se base lui sur la vérification de la propriété complete d'une image.
    Il s'agit donc bien d'une propriété JavaScript liée à un objet JavaScript de type Image, que cet objet ait été créé via l'interprétation du code HTML par le moteur JavaScript ou directement via une fonction.
    L'exemple est donc tout à fait transposable dans ton cas.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Par défaut
    Merci beaucoup pour tes réponse mais le problème est que maintenant il y a une boucle infinie, la variable compteur est toujours égale a 0 le premier chargement. Au deuxième tout se passe bien compteur vaut bien 8 à la fin.
    Donc si je comprend bien le problème c'est que les images ne se charge jamais au premier appel, mais elles sont quand même affichées!
    D'où vient le problème???

Discussions similaires

  1. script qui marche sous ie mais pas sous firefox
    Par sebicool dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 24/05/2007, 00h07
  2. Script qui marche sous FF mais pas sous IE
    Par xclam dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 11/05/2007, 12h26
  3. script qui marche dans la console firebug mais pas a l'execution
    Par xclam dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/05/2007, 12h16
  4. Script qui marche mais pas elegant[newbie]
    Par billybob2006 dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2005, 12h25
  5. script qui marche pas...
    Par jpg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2004, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo