¿Cómo crear un efecto de animación de texto borroso de carga usando HTML y CSS?

La animación de texto borroso se conoce como efecto ahumado y se utiliza para darle a nuestro texto una animación borrosa. El texto se desdibuja linealmente en una dirección y luego vuelve a aparecer.

Enfoque: El enfoque de este artículo es bastante simple. Estamos animando el efecto de desenfoque usando la función de desenfoque() . Luego estamos usando la propiedad secundaria n-ésima para aplicar el retraso de la animación. Ahora vamos a sumergirnos directamente en el código.

Código HTML: hemos creado un elemento div y los caracteres de texto de carga están envueltos dentro de un elemento span.

<!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">
        <span>G</span>
        <span>e</span>
        <span>e</span>
        <span>k</span>
        <span>s</span>
        <span>f</span>
        <span>o</span>
        <span>r</span>
        <span>G</span>
        <span>e</span>
        <span>e</span>
        <span>k</span>
        <span>s</span>
    </div>
</body>
  
</html>

Código CSS:

  • Paso 1: el primer paso es simple: hemos alineado nuestro texto para centrarlo y proporcionar un fondo a nuestro cuerpo.
  • Paso 2: luego proporcionamos una animación lineal con un identificador de fotograma clave como animado .
  • Paso 3: ahora usamos fotogramas clave para aplicar la función de desenfoque a diferentes fotogramas de la animación.
  • Paso 4: El paso final es la aplicación del concepto n-th child para proporcionar un retraso de animación a cada personaje para que solo un personaje se desenfoque en un punto de tiempo.
<style>
    body {
        margin: 0;
        padding: 0;
        background: green;
    }
  
    .geeks {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 30px;
        font-weight: 800;
        letter-spacing: 5px;
    }
  
    .geeks span {
        animation: animate 3s linear infinite;
    }
  
    .geeks span:nth-child(1) {
        animation-delay: 0s;
    }
  
    .geeks span:nth-child(2) {
        animation-delay: 0.1s;
    }
  
    .geeks span:nth-child(3) {
        animation-delay: 0.2s;
    }
  
    .geeks span:nth-child(4) {
        animation-delay: 0.3s;
    }
  
    .geeks span:nth-child(5) {
        animation-delay: 0.4s;
    }
  
    .geeks span:nth-child(6) {
        animation-delay: 0.5s;
    }
  
    .geeks span:nth-child(7) {
        animation-delay: 0.6s;
    }
  
    .geeks span:nth-child(8) {
        animation-delay: 0.9s;
    }
  
    .geeks span:nth-child(9) {
        animation-delay: 0.8s;
    }
  
    .geeks span:nth-child(10) {
        animation-delay: 0.9s;
    }
  
    .geeks span:nth-child(11) {
        animation-delay: 1s;
    }
  
    .geeks span:nth-child(12) {
        animation-delay: 1.1s;
    }
  
    .geeks span:nth-child(13) {
        animation-delay: 1.2s;
    }
  
    @keyframes animate {
        0% {
            filter: blur(0);
        }
  
        40% {
            filter: blur(20px);
        }
  
        80% {
            filter: blur(0);
        }
  
        100% {
            filter: blur(0);
        }
    }
</style>

Código completo: en esta sección, combinaremos las dos secciones anteriores para crear un efecto de animación de texto de carga.

<!DOCTYPE html>
<html lang="en">
  
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0" />
          
    <title>Document</title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background: green;
        }
  
        .geeks {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 30px;
            font-weight: 800;
            letter-spacing: 5px;
        }
  
        .geeks span {
            animation: animate 3s linear infinite;
        }
  
        .geeks span:nth-child(1) {
            animation-delay: 0s;
        }
  
        .geeks span:nth-child(2) {
            animation-delay: 0.1s;
        }
  
        .geeks span:nth-child(3) {
            animation-delay: 0.2s;
        }
  
        .geeks span:nth-child(4) {
            animation-delay: 0.3s;
        }
  
        .geeks span:nth-child(5) {
            animation-delay: 0.4s;
        }
  
        .geeks span:nth-child(6) {
            animation-delay: 0.5s;
        }
  
        .geeks span:nth-child(7) {
            animation-delay: 0.6s;
        }
  
        .geeks span:nth-child(8) {
            animation-delay: 0.9s;
        }
  
        .geeks span:nth-child(9) {
            animation-delay: 0.8s;
        }
  
        .geeks span:nth-child(10) {
            animation-delay: 0.9s;
        }
  
        .geeks span:nth-child(11) {
            animation-delay: 1s;
        }
  
        .geeks span:nth-child(12) {
            animation-delay: 1.1s;
        }
  
        .geeks span:nth-child(13) {
            animation-delay: 1.2s;
        }
  
        @keyframes animate {
            0% {
                filter: blur(0);
            }
  
            40% {
                filter: blur(20px);
            }
  
            80% {
                filter: blur(0);
            }
  
            100% {
                filter: blur(0);
            }
        }
    </style>
</head>
  
<body>
    <div class="geeks">
        <span>G</span>
        <span>e</span>
        <span>e</span>
        <span>k</span>
        <span>s</span>
        <span>f</span>
        <span>o</span>
        <span>r</span>
        <span>G</span>
        <span>e</span>
        <span>e</span>
        <span>k</span>
        <span>s</span>
    </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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *