Cómo usar JavaScript para controlar animaciones y transiciones CSS
Las animaciones y transiciones CSS, combinadas con algo de JavaScript, permiten animaciones aceleradas por hardware que son interactivamente más eficientes que la mayoría de las bibliotecas de JavaScript.
¡Entonces, comencemos! ¡Los más pequeños no pueden esperar!
Nota: las animaciones y las transiciones son diferentes
Las transiciones CSS se aplican cuando una propiedad específica de un elemento cambia, y esa propiedad pasa con el tiempo a su valor final, mientras que las animaciones CSS; simplemente realizan operaciones previamente definidas, proporcionan un control más preciso.
En este artículo analizaremos cada una de estas cuestiones.
Control de transiciones CSS
Hay innumerables preguntas en los foros de programación sobre cómo activar y pausar transiciones. Estos problemas se pueden resolver fácilmente utilizando JavaScript.
¿Cómo desencadenar una transición en un elemento? Cambiar el nombre de clase de un elemento activará la transición de ese elemento
¿Cómo pausar la transición de un elemento? En el punto donde desea pausar la transición, use getComputedStyle y getPropertyValue para obtener el valor de la propiedad CSS correspondiente del elemento y luego establezca la propiedad CSS correspondiente del elemento igual al valor de la propiedad CSS que acaba de obtener.
A continuación se muestra un ejemplo de este método.
.box {
margen: 30px;
alto: 50px;
ancho: 50px;
color de fondo: azul;
}
.box.horizTranslate {
-webkit -transition: 3s;
-moz-transition:3s;
-ms-transition:3s;
-o-transition:3s;
transición: 3s;
-o-transición: 3s;
transición: 3s;
margen izquierdo: 50% !importante;
}
Javascript puro
jQuery
var boxOne = document.getElementsByClassName('box')[0],
boxTwo = $(".box:eq(1)");
document .getElementsByClassName('toggleButton')[0].innerHTML = 'Reproducir';
var computedStyle = window.marginLeft = marginLeft
boxOne.classList.remove(' horizTranslate');
}
}
$('.toggleButton:eq(1)').on('click',function(){
if( $(this).html() === 'Reproducir'){
$(this).html('Pausa');
boxTwo.addClass('horizTranslate');
}else{<
/p>
$(this).html(' Reproducir');
var computedStyle = boxTwo.css('margin-left');
boxTwo.css( 'margin-left',computedStyle);
boxTwo.removeClass( 'horizTranslate');
}
});
Efecto de ejecución: computedStyle = window.getComputedStyle(zoomOne),
backgroundSize = computedStyle.getPropertyValue("fondo-tamaño");
zoomOne.style.backgroundSize = backgroundSize;
zoomOne.classList.remove('zoom'); p> p>
}
// zoomOne:zoomout
document.getElementsByClassName('zoomout')[0].onclick = function(){
zoomOne.classList.remove('zoom');
zoomOne.style.backgroundSize = zoomOneBgSize;
}
// zoomTwo:zoom p>
$('.zoom:eq(1)').on('click',function(){
if(!zoomTwo. hasClass('zoom')){ p>
zoomTwo.addClass('zoom');
}
});
// zoomTwo: pausa
$('.pause:eq(1)').on('click', function(){
var computedStyle = zoomTwo.css('tamaño de fondo'
zoomTwo.css('fondo-tamaño',computedStyle);
zoomTwo.removeClass('zoom');
}); p>
// zoomTwo:zoomout
$('.zoomout:eq(1)').on('click',function(){
zoomTwo.removeClass (' zoom');
zoomTwo.css('fondo-tamaño',zoomTwoBgSize);
});