CSS Pulse Animation Effect proporciona un efecto pulsante a un elemento que cambia su forma y opacidad. Según el momento y la necesidad, se utilizan diferentes @keyframes para lograr esta animación. El efecto simple pero poderoso hace que el sitio web sea más vibrante, colorido y atractivo. Esta animación está completamente implementada sin usar JavaScript.
Ejemplo 1: El siguiente ejemplo muestra un bloque de pulso hacia afuera que se estira y se encoge cuando alcanza su tamaño más alto, comienza con un círculo y termina con una forma cuadrada con diferentes colores saliendo cada vez que cambia su forma.
<!DOCTYPE html> <html> <head> <title> CSS | Pulse animation </title> <style> .element { height: 250px; width: 250px; margin: 0 auto; background-color: lime; animation-name: stretch; animation-duration: 2.0s; animation-timing-function: ease-out; animation-direction: alternate; animation-iteration-count: infinite; animation-play-state: running; } @keyframes stretch { 0% { transform: scale(.5); background-color: green; border-radius: 100%; } 50% { background-color: orange; } 100% { transform: scale(2.0); background-color: red; } } body, html { height: 100%; } body { display: flex; align-items: center; justify-content: center; } </style> </head> <body> <div class="element"></div> </body> </html>
Producción:
Ejemplo 2: Los siguientes ejemplos muestran un efecto de animación de generación de pulso hacia adentro o hacia atrás en un círculo que da un pulso circular hacia adentro después de completar el efecto. Se expande de nuevo a su estado original y el efecto continúa ocurriendo.
<!DOCTYPE html> <html> <head> <title>Reverse Pulse </title> <link rel="stylesheet" type="text/css" href="style.css"> <style> .pulse { position: absolute; top: 35%; left: 40%; transform: translate(-505, -50%); width: 100px; height: 100px; background: #33ff00; border: 2px solid #33ff00; border-radius: 50%; box-sizing: border-box; box-shadow: 0 0 0 36px #45237a, 0 0 0 40px #56ff00; } .pulse:before, .pulse:after { content: ''; position: absolute; left: -30px; top: -30px; right: -30px; bottom: -30px; border: 2px solid #33ff00; border-radius: 50%; animation: animate 2s linear infinite } .pulse:after { animation-delay: 1s; } @keyframes animate { 0% { transform: scale(2.0); } 100% { transform: scale(0.7); } } } </style> </head> <body> <div class="pulse"></div> </body> </html>
Producción:
Publicación traducida automáticamente
Artículo escrito por mohitgouti y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA