El movimiento lineal de una línea recta significa que la línea comenzará en un punto, irá al segundo punto y luego regresará al punto de partida. Es una especie de movimiento de ida y vuelta. Lo haremos usando solo CSS.
Enfoque: el enfoque es crear primero una línea recta y luego animarla usando fotogramas clave. Se hará en dos pasos. Primero para el movimiento de avance y segundo para el movimiento de retroceso. El siguiente código seguirá el mismo enfoque.
HTML: en HTML, hemos creado un elemento div que se usa para hacer una línea recta.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content= "width=device-width, initial-scale=1.0" /> <title>GeeksforGeeks</title> </head> <body> <div class="geeks"></div> </body> </html>
CSS:
- Cree una línea recta proporcionando la altura y el ancho mínimos de su preferencia.
- Anime esta línea recta usando el selector anterior y proporcione una animación lineal con un identificador de fotogramas clave llamado animate .
- La animación de fotogramas clave es muy sencilla. Para los primeros medios fotogramas, haga que el ancho sea del 100 % (movimiento hacia adelante) y luego redúzcalo al 0 % (movimiento hacia atrás) para los siguientes medios fotogramas.
<style> body { margin: 0; padding: 0; background: green; } .geeks { width: 400px; height: 2px; background: #fff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .geeks::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: green; animation: animate 5s linear infinite; } @keyframes animate { 0% { left: 0; } 50% { left: 100%; } 0% { left: 0; } } </style>
Código completo: en esta sección, combinaremos código HTML y CSS para crear un efecto de animación de línea recta.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content= "width=device-width, initial-scale=1.0" /> <title> How to animate a straight line in linear motion? </title> <style> body { margin: 0; padding: 0; background: green; } .geeks { width: 400px; height: 2px; background: #fff; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .geeks::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: green; animation: animate 5s linear infinite; } @keyframes animate { 0% { left: 0; } 50% { left: 100%; } 0% { left: 0; } } </style> </head> <body> <div class="geeks"></div> </body> </html>
Producción:
Publicación traducida automáticamente
Artículo escrito por sirohimukul1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA