jQuery: interrompere le animazioni CSS infinite

jQuery: interrompere le animazioni CSS infinite

Supponiamo di aver creato un'animazione CSS infinita come una barra di caricamento o uno spinner. L'animazione continua ad essere attiva anche quando nascondiamo l'elemento con jQuery. Come possiamo fermarla?

Un'animazione CSS viene associata ad un elemento tramite la at-rule @keyframes che ne definisce il nome. Quindi è sufficiente creare una classe CSS come la seguente:


#loader.off {
	-moz-animation-name: none;
	-webkit-animation-name: none;
	-ms-animation-name: none;
		animation-name: none;
}

Questa classe può essere applicata all'elemento tramite jQuery:


setTimeout(function() {

	$( "#loader" ).fadeOut( 1000, function() {
		$( this ).addClass( "off" );	
	});
	
}, 3000); // 3 secondi di attesa

Per far ripartire l'animazione rimuoviamo semplicemente la classe specificata.

Torna su