javascript - remove - ¿Cómo puedo averiguar con jQuery si un elemento está siendo animado?
jquery prepend (5)
Alternativamente, para probar si algo no está animado, simplemente puede agregar un "!":
if (!$(element).is('':animated'')) {...}
Estoy tratando de mover algunos elementos en la página, y durante el tiempo que la animación ocurre, quiero tener "overflow: hidden" aplicado a un elemento, y "overflow" de nuevo a "auto" una vez que se completa la animación.
Sé que jQuery tiene una función de utilidad que determina si algún elemento está siendo animado pero no puedo encontrarlo en ningún lado en los documentos
Si desea aplicar css a elementos animados, puede usar el pseudo selector :animated
y hacerlo así,
$("selector").css(''overflow'',''hidden'');
$("selector:animated").css(''overflow'',''auto'');
fuente: https://learn.jquery.com/using-jquery-core/selecting-elements/
si está utilizando la animación css
y asigna la animación usando un class name
específico, puede verificarlo así:
if($("#elem").hasClass("your_animation_class_name")) {}
¡Pero asegúrese de eliminar el nombre de clase que maneja la animación una vez que la animación haya finalizado!
Este código se puede usar para eliminar el class name
después de que la animación haya terminado:
$("#elem").on(''webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'',
function(){
$(this).removeClass("your_animation_class_name");
});
$(''selector'').click(function() {
if ($('':animated'').length) {
return false;
}
$("html, body").scrollTop(0);
});
if( $(elem).is('':animated'') ) {...}
Más información : http://docs.jquery.com/Selectors/animated
O:
$(elem)
.css(''overflow'' ,''hidden'')
.animate({/*options*/}, function(){
// Callback function
$(this).css(''overflow'', ''auto'');
};