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 :

Passage trop rapide de la souris


Sujet :

jQuery

  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Passage trop rapide de la souris
    Bonjour,

    Je dois réaliser une intégration avec du JS avec un texte qui s'affiche dans un bloc unique au passage de la souris sur un titre (3 en tout).
    J'ai récupéré un code fonctionnelle mais l'action sur ce dernier étant au clic je l'ai donc modifié par un mouseover afin d'avoir le résultat escompté.
    Tout fonctionne bien sauf que si je passe trop vite avec ma souris d'un titre à un autre, les 2 contenus correspondants s'affichent en même temps à la suite.
    Quelqu'un aurait-il une solution pour éviter cette superposition ?

    Voici le code en question :

    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
    <script type="text/javascript">
    $(function(){
      $('#sidemenu a').on('mouseover', function(e){
        e.preventDefault();
     
        if($(this).hasClass('open')) {
          // do nothing because the link is already open
        } else {
          var oldcontent = $('#sidemenu a.open').attr('href');
          var newcontent = $(this).attr('href');
     
          $(oldcontent).fadeOut('fast', function(){
            $(newcontent).fadeIn().removeClass('hidden');
            $(oldcontent).addClass('hidden');
          });
     
     
          $('#sidemenu a').removeClass('open');
          $(this).addClass('open').stop(true,true);
        }
      });
    });
    </script>

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Le callback passé au fadeOut se déclenchera tout le temps, même si le handler du mouseover est rappelé entre temps. Il faut annuler l'exécution programmée de ce callback, par exemple avec $(elem).stop(true, true) :
    http://api.jquery.com/stop/#clearQueuegotoEnd

    Tu l'as appliqué sur le lien du menu, je ne sais pas trop à quoi ça sert (ce lien est-il animé ?). Il faudrait plutôt l'appliquer sur oldcontent
    One Web to rule them all

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Oui le lien est animé.
    Pour décrire brièvement la structure, on a une colonne à gauche avec 3 titres encadrés (qui change de couleur en hover) et à un droite un bloc texte où s'affichent 1 des 3 textes quand on passe la souris sur un des titres correspondants.

Discussions similaires

  1. fonction qui "s'affole" au passage trop rapide sur un lien
    Par filtep dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/12/2009, 19h29
  2. Ca avance mais souris trop rapide :)
    Par Fazerman60 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 14/05/2009, 20h24
  3. [VBA-E] Liaisons qui ne se mettent pas à jour (macro trop rapide?)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 21/11/2005, 09h36
  4. Horloge 2x trop rapide!
    Par rgy834 dans le forum Administration système
    Réponses: 6
    Dernier message: 24/10/2005, 21h08
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

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