2010-11-12 5 views
0

j'ai un code suivantcomment donner délai pour mouseover

$(document).ready(function(){ 

    //When mouse rolls over 
    $("#nav #nav_li").mouseover(function(){ 
     $(this).stop().animate({height:'140px', width:'182px'},{queue:false, duration:600}) 
    }); 

    //When mouse is removed 
    $("#nav #nav_li").mouseout(function(){ 
     $(this).stop().animate({height:'11px', width:'146px'},{queue:false, duration:900}) 
    }); 


}); 

Dans ce quand je fais la souris sur ses animer soudainement des œuvres

quand je passe la souris la #nav_li il anime après quelques secondes

Merci les gens

+0

Avez-vous l'ID 'nav_li' utilisé plus d'une fois? –

+0

Désolé, je ne peux vraiment pas comprendre ce que vous dites. –

+0

@Nick Craver: oui j'ai utilisé – Mubeen

Répondre

1

AFAIK, il y a jQuery plugin HoverIntent pour faire face à cette question.

overIntent est un plug-in qui tente de déterminer l'intention de l'utilisateur ... comme une boule de cristal, seulement avec le mouvement de la souris ! Cela fonctionne comme (et a été dérivé de) planeur intégré de jQuery. Cependant, au lieu de appelant immédiatement la fonction onMouseOver, il attend jusqu'à ce que la souris de l'utilisateur ralentisse assez bas avant de faire l'appel.

Pourquoi? Pour retarder ou empêcher le déclenchement accidentel des animations ou les appels ajax . Les délais d'attente simples fonctionnent pour les petites zones , mais si votre zone cible est grande, elle peut s'exécuter indépendamment de l'intention .