Inicio Apuntes FPApuntes DAW Animación de texto múltiple con HTML, CSS y JavaScript

Animación de texto múltiple con HTML, CSS y JavaScript

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Una vez más aquí. Hoy vengo a dejar un pequeño ejemplo sobre algo que un usuario me ha preguntado vía correo electrónico cómo podría mostrar diferentes mensajes en su web mediante texto, haciendo que estos se repitiesen en bucle. Esto es algo que en su día hice para otra web que tenía (y que ya no está en funcionamiento), por lo que creo que le podrá servir a este usuario para crear una animación de texto múltiple usando HTML, CSS y un pequeño JavaScript, aun que me imagino que tendrá que adaptarlo a sus necesidades.

Una animación de texto de escritura múltiple significa la animación del texto que cambia automáticamente, utilizando un efecto como el del cursor de un ordenador. En el siguiente ejemplo, veremos un texto fijo en blanco y texto verde que irá cambiando cada pocos segundos. En realidad, las partes con el texto serán constantes, y las palabras de la parte verde se animarán con varios textos.

Animación de texto de escritura múltiple usando HTML CSS y JavaScript

A continuación vamos a ver todo el código HTML, CSS y JavaScript necesario para crear esta animación de texto de escritura múltiple. Antes de ver los archivos de código fuente, debemos conocer algunas explicaciones básicas.

animación texto múltiple con CSS, HTML y JavaScript

En la pantalla vamos a ver visto dos tipos de texto, uno de color blanco y con características constantes, y otro de color verde que se va a animar para mostrar diferentes textos. El texto animado automáticamente con texto diferente se va a mostrar como un efecto de máquina de escribir (más o menos conseguido). Para animar este texto como una máquina de escribir se utiliza la propiedad de @keyframe animate CSS, y para cambiar el texto se utiliza un poco de JavaScript.

Código del texto de escritura múltiple

Para realizar este ejemplo, como decíamos líneas más arriba, utilizaremos código HTML, CSS y JavaScript para la animación de texto de escritura múltiple. Todos estos código los vamos a utilizar en dos archivos. El primero de ellos es un archivo HTML, que además incluirá el JavaScript, y otro es un archivo CSS.

HTML y JavaScript

La web en HTML de este proyecto es muy sencilla. Tan solo consta de un contenedor en el que tendremos un texto fijo, y otro que será el que vamos a ir cambiando cada pocos segundos utilizando el script de JavaScript que también se incluye en dentro del HTML.

Para esto, dentro de un archivo llamado index.html, tan solo tendremos que pegar el siguiente código.

<!DOCTYPE html>
<html lang="es" dir="ltr">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <title>Texto Animado</title> 
    <link rel="stylesheet" href="style.css"/>
</head>
<body>
    <div class="container">
        <span class="text first-text">Soy </span>
        <span class="text sec-text">ENTREUNOSYCEROS</span>
    </div>

    <script>
        const text = document.querySelector(".sec-text"); //seleccionamos la clase a modificar

        const textLoad = () => {
            setTimeout(() => {
                text.textContent = "Freelance";
            }, 0); //1s = 1000 millisegundo
            setTimeout(() => {
                text.textContent = "Blogger";
            }, 4000);
            setTimeout(() => {
                text.textContent = "Programador";
            }, 8000); 
            setTimeout(() => {
                text.textContent = "Youtuber";
            }, 12000);
            setTimeout(() => {
                text.textContent = "entreunosyceros.net";
            }, 16000);
        }

        textLoad();
        setInterval(textLoad, 20000); // tiempo total de la animación
    </script>
    
</body>
</html>

CSS

El código CSS necesario para llevar a cabo este pequeño ejemplo lo vamos a guardar dentro de un archivo llamado style.css. Dentro de este archivo, solo necesitamos pegar el siguiente código.

/*Quitamos el padding y el margin*/
* {
    margin: 0;
    padding: 0;
    font-family: 'Comic Sans MS', Helvetica, sans-serif;
}

body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    overflow: hidden;
}

/*Contenedor del texto*/
.container {
    width: 400px;
    overflow: hidden;
}

/*Texto que se modifica*/
.container .text {
    position: relative;
    color: #40F4A8;
    ;
    font-size: 30px;
    font-weight: bold;
}

/*Texto fijo*/
.container .text.first-text {
    color: #FFF;
}

/*Cursor*/
.text.sec-text:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-color: #000;
    border-left: 2px solid #40F4A8;
    ;
    animation: animate 4s steps(16) infinite;
}

/*Animación*/
@keyframes animate {
    40%, 60% {
        left: calc(100% + 4px);
    }

    100% {
        left: 0%;
    }
}

Este ejemplo se puede ver funcionando en el siguiente enlace. El código que se muestra en este ejemplo está enfocado a ser mostrado como una página web (sin mucha utilidad, la verdad sea dicha), pero se puede encajar fácilmente dentro de una web. Así que cada cual que lo coloque donde mejor le vaya.

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.