2010-03-24 13 views
9

Ho questo codice che cambia l'opacità del div su hover.Jquery delay on fadeout

$("#navigationcontainer").fadeTo("slow",0.6); 

$("#navigationcontainer").hover(function(){ $("#navigationcontainer").fadeTo("slow", 
    1.0); // This sets the opacity to 100% on hover },function(){ 

$("#navigationcontainer").fadeTo("slow", 
    0.6); // This sets the opacity back to 60% on mouseout }); 

voglio avere un ritardo prima di impostare il div di nuovo a 0,6 opacità come potrei fare questo

risposta

47

con jQuery 1.4, si dispone di un metodo chiamato delay, che prende un intero che rappresenta ms che si desidera a ritardare

$("#navigationcontainer").delay(500).fadeTo("slow", 0.6); 

mezzo secondo di ritardo

+0

Continuo a dimenticare che lol Grazie mai così tanto – user272899

+0

che è grande roba! Grazie! –

2

usate il set timeout con un callback per le funzionalità che si desidera e un ritardo che si desidera.

$("#navigationcontainer").fadeTo("slow",0.6); 

$("#navigationcontainer").hover(function(){ $("#navigationcontainer").fadeTo("slow", 
    1.0); // This sets the opacity to 100% on hover },function(){ 


var delay = 1000; 
setTimeout(function() 
    { 
     $("#navigationcontainer").fadeTo("slow", 
      0.6); // This sets the opacity back to 60% on mouseout }); 

    }, 
    delay 
) 
0

Come su

$("#hover_me").hover(function() { 
       $("#target_div").fadeTo("slow", 1.0); 
      }, function() { 
       $("#target_div").delay(800).fadeTo("slow", 0.6); 
      }); 
+0

Come sopra, dipende da jquery 1.4 ... – odavy