Aujourd'hui, j'ai essayé d'implémenter sur mon site animate.css
Mais je voulais m'assurer que l'effet est activé dans le survol. J'ai donc utilisé jquery pour cela
Le code est:
$(".questo").hover( function (e) {
$(this).toggleClass('animated shake', e.type === 'mouseenter');
});
Le problème est qu'une fois que vous enlevez la souris, l'effet est interrompu. Il pourrait atterrir l'effet même sans effet de survol une fois qu'il a commencé?
Merci d'avance à tous
Voir cette variante (plus interactive):
$(".myDiv").hover(function(){
$(this).addClass('animated ' + $(this).data('action'));
});
$(".myDiv").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd",function(){
$(this).removeClass('animated ' + $(this).data('action'));
});
Dans votre fichier CSS, vous pouvez simplement ajouter:
.questo:hover {
-webkit-animation: shake 1s;
animation: shake 1s;
}
La bonne chose à propos de cette solution est qu’elle ne nécessite aucun JavaScript. Pour référence, regardez cette page
Plutôt que de basculer les classes en survol, ajoutez-les à la souris, comme ceci
$(".questo").mouseEnter(function(event) {
$(this).addClass("animated shake");
});
Ensuite, vous pouvez supprimer les classes lorsque l'animation se termine
$(".questo").on("webkitAnimationEnd mozAnimationEnd oAnimationEnd animationEnd", function(event) {
$(this).removeClass("animated shake");
});
Je le ferais en entrant souris plutôt qu'en survol, car vous pourriez déclencher l'animation lorsque la souris sort de l'élément.
Voir ceci jsFiddle pour un exemple
Au lieu d'utiliser toggleClass
, modifiez votre code en ajoutant la classe en survol, puis accrochez-vous pour que l'animation termine css3 se termine et que supprime la classe.
Code:
$(".questo").hover(function (e) {
$(this).addClass('animated shake');
});
$(".questo").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function () {
$(this).removeClass('animated shake');
});
Je pense que vous dites que l'animation s'arrête une fois que la souris est partie et que vous essayez de réaliser une animation qui, une fois démarrée, resterait active.
Dans ce cas, vous devez définir le nombre d'itérations d'animation sur infini . Veuillez ajouter
animation-iteration-count:infinite
à la classe d'animation dans votre feuille de style.
En supposant que vous souhaitiez ajouter la classe lorsque la souris entre, et la supprimer lorsque vous quittez la souris ....
Vous pouvez essayer ceci:
$(".questo").hover( function (e) {
$(this).addClass('animated shake');
}, function(e){
$(this).removeClass('animated shake');
});