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 :

mouvement continu sur survol d'objet


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut mouvement continu sur survol d'objet
    Bonjour à tous,
    Je ne pose que très rarement de question (en fait jamais) car en général je trouve avant en vous lisant ou en travaillant (élève sage).

    Mon souci est le suivant :
    Je veux faire bouger un objet ou agir sur lui (fait) mais au lieu de cliquer je veux survoler par exemple une div et là ou sa se corse: "tantque je suis au dessus le mouvement continu, dès que le focus sort de l'objet le mouvement s'arrête".

    J'ai essayé avec des onmouseover et onmouseout avec bascule while( bascule)... j'ai mis un timer, mais soit je ne générère qu'un seul appel sur l'événement, soit je part en boucle et le timer ne suffit pas pour capter le onmouseout.

    si quelqu'un a une idée ça m'arrangerais beaucoup.
    merci d'avance (et déjà de m'avoir lu).

  2. #2
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Set et Clear Interval ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var interval;
    elem.onmouseover = function(){
        clearInterval(interval); // pour être sûr que le précédent interval n'existe plus,  bien qu'un 2ème "over" sans "out" ne me semble pas possible
        interval = setInterval(function(){
            // animation toutes les secondes
        },1000);
    };
    elem.onmouseout = function(){
        clearInterval(interval);
    };

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut Merci
    Merci beaucoup willpower

    J'ai travaillé entre temps et j'ai fait ce petit truc qui fonctionne.

    Je vais essayer le tien qui me semble plus élégant

    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
    var actif=false;
     
    function mouvement ( xpos, ypos)
    {
     
    	/* xpos valeur de mouvement en x (incrément)*/
    	/* ypos valeur de mouvement en y (incrément)*/
    	var valeurx;// relevé de la position absolue en x
    	var valeury;// relevé de la position absolue en y
     
    	/*** bla bla bla bla
    	traitement du mouvement
    	*/
     
    	if( actif )setTimeout("mouvement ("+xpos+","+ypos+")",50);
     
    }
     
          </script> 
      </head>
      <body>
    	<div id='ecran' >
    	<div id="calq" style="position : absolute;left:100px;top:100px;height:100px;width:100px;background:#fff;" >du texte dans la div en mouvement</div>
     
    	<div id="bouton" onmouseover="actif=true;mouvement(+10,0);" onmouseout="actif=false;"></div>
     
     
    	</div>
     
    </body>
    Bon ben maintenant je vais chercher le machin pour dire que c'est résolu

    merci beaucoup de ta promptitude !

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par jihelge Voir le message
    Bon ben maintenant je vais chercher le machin pour dire que c'est résolu
    Tout en bas à droite. (il est bien caché^^)


    Sinon effectivement dans ton cas un interval est plus adapté qu'un timeout.


    Et petite remarque en passant, on conseille généralement d'utiliser une function plutôt qu'un string d'instructions à l’intérieur des setTimeout et SetInterval notamment pour s'assurer du contexte (portée des variables).

    Utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(function(){instruction1;instruction2;},delay);
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("instruction1;instruction2;",delay);

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    Ok merci bien pour ces conseils. En ce moment je produit un peu au kilomètre et j'ai tendance à oublier les bons usages.

    Pour l'intervalle ok tu as raison.

    Aller je retourne au taf.

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

Discussions similaires

  1. [débutant] Afficher texte sur survol d'un objet
    Par bcnle dans le forum Flash
    Réponses: 1
    Dernier message: 30/01/2008, 16h52
  2. musique continue sur tout le site
    Par xtaze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/06/2005, 13h44
  3. Questions sur la programmation objet en Delphi
    Par Manopower dans le forum Débuter
    Réponses: 20
    Dernier message: 15/06/2005, 15h39
  4. Réponses: 5
    Dernier message: 13/06/2005, 17h59
  5. Réponses: 13
    Dernier message: 25/01/2005, 10h05

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