$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)
Ho un div che è semi trasparente e quindi voglio passare a non trasparente. Ma il jQuery .delay (); il metodo non sembra funzionare qui. Ho provato .fadeIn (); invece e che funziona con un ritardo ma non funziona le classi che cambiano.
.delay()
è usato per gli elementi che fanno parte di una queue
, come le animazioni. Un addClass
semplice non è in coda.
Potresti usare setTimeout
.
var trans = $('.transparent').removeClass('transparent'); setTimeout(function() { trans.addClass('not_transparent'); }, 2000);
In alternativa, puoi aggiungere l’elemento non in coda alla coda usando .queue()
, anche se penso che un setTimeout
sarebbe meglio.
$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) { $(this).addClass('not_transparent'); nxt(); });
So che questa è una vecchia domanda, ma c’è ancora molto traffico proveniente da Google, quindi aggiungerò i miei due centesimi;
Potresti usare qualcosa come –
$('.transparent').fadeIn().delay(500).queue(function(){ $('.transparent').addClass('yourclass'); });
.delay()
non funziona con il tag .addClass()
al di fuori di una funzione, quindi usa semplicemente:
delay(); function delay(){ $('.pgtitle').delay(5000).fadeIn(0).addClass('animated bounceInDown'); }