Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jQuery] problème avec mouseover mouseout

Sujet résolu
    20 février 2009 à 17:54:11

    Bonjour,
    j'ai besoin d'afficher un cadre sur une image pour pouvoir mieux localiser une zone de l'image.
    je souhaite que lorsque je passe sur une <area /> le cadre s'affiche autour de cette <area /> et disparaisse quand la souris "sort".
    Pour le cadre pas de problème il s'affiche seulement il clignote lorsqu'on reste sur la zone avec la souris (à cause des fadeIn() et fadeOut()) comme si on passait dans les fonctions mouseover et mouseout en boucle.

    Je vous met le code JS :

    $(document).ready(function() {
    
            $('<div id="cadre"></div>').css({
    		'position': 'absolute',
    		'left': 0,
    		'top' : 0,
    		'display': 'none'
    	}).appendTo('#wrapper');
    	
    	
    	$('.map-area').mouseover(function(event) {
    		var coord = $(this).attr('coords').split(',');
    		var supx = coord[0];
    		var supy = coord[1];
    		var infx = coord[2];
    		var infy = coord[3];
    		
    		pos = $('.image img').offset();	
    		
    		$('#cadre').css({
    			'position' : 'absolute',
    			'left' : pos.left + parseInt(supx),
    			'top' : pos.top + parseInt(supy),
    			'width' : infx - supx,
    			'height' : infy - supy,
    			'border' : '2px solid black'
    		});
    		
    		$('#cadre').fadeIn('slow');
    				
    	});
    	$('.map-area').mouseout(function() {
    			
    		$('#cadre').fadeOut('slow');
    		
    	});
    
    });
    


    Et le code xHTML :

    <p class="image">
    	<map id="map" name="map">			
    		<area shape="rect" coords="75,50,200,150" nohref="nohref" class="map-area" title="" alt="" />
    		<area shape="rect" coords="300,70,430,150" nohref="nohref" class="map-area" title="" alt="" />					
    	</map>				
    	<img src="test.jpg" alt="" width="600" height="400" usemap="#map" />
    </p>
    


    Donc comment enlever ce clignotement ?
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2009 à 19:38:32

      Tu as raison en disant cela :

      Citation : lappinous

      comme si on passait dans les fonctions mouseover et mouseout en boucle.


      C'est exactement ce qui se produit, tu mets ta souris sur une <area />, l'évènement mouseover est donc déclenché. À ce moment là apparaît un block sur ton <area />, l'évènement mouseover n'est donc plus actif et l'évènement mouseout se déclenche.

      Pour éviter cela il faut que tu appliques le mouseout sur le block qui vient couvrir ton <area /> ;) .
      • Partager sur Facebook
      • Partager sur Twitter
        20 février 2009 à 21:06:23

        C'est pas faux ...
        Merci beaucoup
        • Partager sur Facebook
        • Partager sur Twitter
          20 février 2009 à 21:16:53

          De rien, hésite pas si besoin ^^ .
          • Partager sur Facebook
          • Partager sur Twitter

          [jQuery] problème avec mouseover mouseout

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown