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 :

Boucle sur "OnMouseOver"


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut Boucle sur "OnMouseOver"
    Bonjour,

    Débutant en javascript j'essaie de faire un petit script permettant au passage de la souris sur une image de déplacé une autre image.

    Pour ça aucun soucis l'image est décalé comme je le souhaite, mais ce décalage ne s'effectue qu'une seule fois, j'ai essayé de faire des fonctions que j'appelle avec "onmouseover" et "onmouseout" pour débuté et arrêté le déplacement mais cela ne fonctionne pas.

    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
     
    // La fonction de déplacement de l'objet	
    function bouge(x,y)
    {
     
     	if(document.getElementById)
    	{
    		hautimage += y;
    		gaucheimage += x;
    		document.getElementById("smile").style.top =hautimage;
    		document.getElementById("smile").style.left = gaucheimage;
    	}
     
    }
     
    // la fonction pour initialisé un déplacement
     
    function start(x,y,dep)
    {
         while(dep)
         {
             bouge(x,y);
          }
    }
     
    function stop()
    {
        dep=false;
    }
    Puis dans le code xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    < img src="./blabla.jpg" onmouseover="start(-10,0,true);" onmouseout="stop()">
    Je précise que l'image que je veut déplacer est inséré en javascript de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <SCRIPT LANGUAGE="javascript">
    var hautimage = 300;
    var gaucheimage = 300;
    document.write('<IMG SRC="./images/smile.gif" ID=smile STYLE="position:absolute;top:'+hautimage+';left:'+gaucheimage+'">');
    </SCRIPT>
    Cordialement.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    pour te répondre, il faudrait aussi voir les fonction start() et stop() que tu devrait d'ailleurs appeler par A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut
    Elles sont dans le premier block de code =)

    Même en apellant la fonction par onmouseout="stop();" je n'obtient rien.
    A+

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par crackers-belin Voir le message
    Elles sont dans le premier block de code =)

    Même en apellant la fonction par onmouseout="stop();" je n'obtient rien.
    Arf !
    J'avais pas scrollé

    Il faut que tu transformes ton paramètre "dep" en variable globale, visiblement

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut Re
    Autant pour moi j'avais oublié ça, avant la fonction "bouge", je déclare dep de cette manière :

    var dep=false;

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    dep est une paramètre de la fonction start et reste toujours true ce qui implique le boucle infinie que tu ne peux pas accéder depuis la fonction stop.

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    dep est une paramètre de la fonction start et reste toujours true ce qui implique le boucle infinie que tu ne peux pas accéder depuis la fonction stop.
    Voilà
    => Vire le paramètre de la fonction, pour que "dep" fasse toujours référence à la variable globale.

    A+

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    => Vire le paramètre de la fonction, pour que "dep" fasse toujours référence à la variable globale.


    A+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut Re
    J'ai modifié mon code de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function start(x,y)
    {
    	dep=true;
    	while(dep)
    	{
    		bouge(x,y);
    	}
    }
     
    function stop()
    {
    	dep=false;
    }
    Et il ne se passe toujours rien

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 18
    Par défaut Re
    aurait tu une idée pour évité ce problème de boucle infini, en rapellant la fonction start avec dep=false, ça pourrait fonctionné ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Quote] DVP quoté sur Bashfr
    Par Skyounet dans le forum La taverne du Club : Humour et divers
    Réponses: 16
    Dernier message: 26/09/2006, 18h52

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