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

jQuery Discussion :

Jquery - Gestion d'évenement


Sujet :

jQuery

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 216
    Par défaut Jquery - Gestion d'évenement
    Salut,

    je suis en train d'essayer de gérer des événements (hover) avec Jquery.

    Ce que j'essaie de faire :

    une div définie comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #graph{
        position:absolute;
        top:10px;
        left:20px;
        height:150px;
        width:40px;
        border:1px dotted red;
        background:#FFB0B0;
    }
    Je voudrais qu'au survol par la souris de cette div, elle "remonte" cad que sa hauteur soit nulle, puis quand la souris part qu'elle retrouve sa taille initiale.

    Ce à quoi je suis arrivé :

    j'ai mis ce javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $("#graph").hover(
                        function (){
                            $(this).slideUp("slow");
                        },
                        function(){
                            $(this).slideDown("slow");
                        }
                  );
    Pour l'instant ca fonctionne, mais si la souris part avant que la div soit complétement remonter, elle remonte quand meme jusqu'en haut, puis retrouve ca taille normale.

    Ma question est : comment faire en sorte que cette "animation" s'arette si la souris n'est plus au dessus de la div ?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par mama07 Voir le message
    Salut,

    je suis en train d'essayer de gérer des événements (hover) avec Jquery.

    Ce que j'essaie de faire :

    une div définie comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #graph{
        position:absolute;
        top:10px;
        left:20px;
        height:150px;
        width:40px;
        border:1px dotted red;
        background:#FFB0B0;
    }
    Je voudrais qu'au survol par la souris de cette div, elle "remonte" cad que sa hauteur soit nulle, puis quand la souris part qu'elle retrouve sa taille initiale.

    Ce à quoi je suis arrivé :

    j'ai mis ce javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $("#graph").hover(
                        function (){
                            $(this).slideUp("slow");
                        },
                        function(){
                            $(this).slideDown("slow");
                        }
                  );
    Pour l'instant ca fonctionne, mais si la souris part avant que la div soit complétement remonter, elle remonte quand meme jusqu'en haut, puis retrouve ca taille normale.

    Ma question est : comment faire en sorte que cette "animation" s'arette si la souris n'est plus au dessus de la div ?
    avez-vous essayé d'ajouter un
    $(this).stop() ;
    avant les slideUp/Down ?

    (faudra peut-être utiliser animate() directement…)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2005
    Messages : 219
    Par défaut
    Bonjour,

    Je crois avoir posée une question identique il y a peu, qui n'a pas reçue de réponse.

    stop() fonctionne mais il faut bien comprendre sur quoi il agit et quel événement tu utilises.

    Ca ne fonctionnait pas bien dans mon cas et j'ai donc utilisé dequeue() mais ce dernier a amené d'autres problèmes curieux (ça virait de la queue d'autres événements).

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    je crois que tu peux faire appel à la fonction callback

    dans hover
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $(this).slideDown("slow",reduire())
    un peu plus loin...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function reduire() {
      // définit un style DOM qui donne ta bonne taille
    }

Discussions similaires

  1. Methode de gestion d'évenement + affichage
    Par Aarbaal dans le forum SDL
    Réponses: 4
    Dernier message: 19/02/2007, 22h52
  2. Gestion d'évenements timestampés
    Par jc_isd dans le forum C++
    Réponses: 1
    Dernier message: 02/02/2007, 11h21
  3. Gestion des évenements lors de la validation par le bouton entrée
    Par rattlehead dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/12/2006, 16h24
  4. [VB2005] Gestion des évenement dans une fonction
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 24/07/2006, 09h07
  5. [TComPort] gestion des évenements
    Par akabane dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/05/2006, 10h29

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