2016-09-21 1 views
0

Ich habe Sprite-Animationen, die beim Hover animieren und animieren, auch wenn ich mouseout. Wenn ich den Mauszeiger über das Symbol halte, bevor die Animation abgeschlossen ist, wird die Animation zurückgesetzt.Verhindere das Zurücksetzen der Animation vor 2 Sekunden

Die Animationen sind auf 2 Sekunden eingestellt. Gibt es eine Möglichkeit, den Mauszeiger über die Animation zu bewegen und sie erst nach 2 Sekunden zurückzusetzen, nachdem ich sie per Mausklick verschoben habe?

$(".book").on('mouseenter',function(){ 
$(this).toggleClass('sprite_animating'); 
}); 


$(".book").on('animationend', function(){ 
$(this).toggleClass('sprite_animating'); 
}); 
+0

Mögliches Duplikat http://stackoverflow.com/questions/39585353/how-do-i-rotate-an-image-on-hover-using-jquery/ – guest271314

+0

'javascript' bei Frage sollte zurückzuerwartet Ergebnis http://stackoverflow.com/a/39586079/. Können Sie 'css' bei Question angeben? Können Sie ein Stacksnippets oder Jsfiddle http://jsfiddle.net erstellen, um das Problem zu demonstrieren? – guest271314

Antwort

0

können Sie eine Bedingung mit einem Timeout gesetzt und jeder Zeit gibt es ein Mouseover Sie für diesen Zustand auf die Mouseover vor dem Antworten zuerst überprüfen. Das folgende Snippet sollte funktionieren.

$(document).ready(function(){ 

     var mouseoverDisabled = false; 
     $('.book').mouseover(function(){ 
      if (mouseoverDisabled) 
      return; 
      $(this).toggleClass('sprite_animating'); 
      mouseoverDisabled = true; 
      setTimeout(function(){mouseoverDisabled = false;}, 2000); 
     }); 

    }); 
Verwandte Themen