Efecto de máquina de escribir como introducción de un sitio web

Hoy quiero compartir un sencillo y atractivo efecto de introducción que he creado para un sitio web. Utiliza el plugin Typed.js, ideal para simular una máquina de escribir que escribe y despliega textos dinámicamente.

Este efecto es perfecto para capturar la atención de los usuarios en la página de inicio de tu sitio web. Cuando el efecto termine te lleva a la segunda sección. Aquí tienes el código:

Código HTML y CSS

El HTML contiene las secciones principales de nuestra página, incluyendo un contenedor para el texto dinámico y otro para el título final, En los textos veras estos números (^500) esto es una opción que tiene Typed.js para dar un delay donde lo necesites.

<section id="section-1">
  <div id="typed-strings">
    <p>
      <strong>
        Muchos años después, frente al pelotón de fusilamiento, el coronel Aureliano Buendía había de recordar aquella tarde remota en que su padre lo llevó a conocer el hielo. ^500
      </strong>
      <strong>
        Macondo era entonces una aldea de veinte casas de barro y cañabrava construida a la orilla de un río de aguas diáfanas que se precipitaban por un lecho de piedras pulidas, ^350 blancas y enormes como huevos prehistóricos. ^500
      </strong>
      <strong>
        El mundo era tan reciente, ^350 que muchas cosas carecían de nombre, y para mencionarlas había que señalarlas con el dedo. ^700
      </strong>
    </p>
  </div>
  <span id="typed"></span>
</section>

<section id="section-2">
  <h2>CIEN AÑOS DE SOLEDAD</h2>
</section>

El CSS ayuda a dar formato al texto y asegura que las secciones se vean bien estructuradas:

#typed-strings {
  display: none;
}

#typed {
  font-size: clamp(1.25rem, 0.9537rem + 1.4815vw, 2.25rem);
  line-height: 1.2;
}

#typed strong {
  margin: 0;
  font-weight: 400;
  display: block;
  -webkit-transition: opacity 0.8s ease-out;
  transition: opacity 0.8s ease-out;
}

#typed strong:last-child::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1ch;
  background-color: currentColor;
  animation: typedjsBlink 0.7s infinite;
}

#typed strong::first-letter {
  padding-left: 5%;
}

#typed.done strong:not(:last-child) {
  opacity: 0.3;
}

section {
  height: 100svh;
  padding: 24px;
}

section:nth-child(2) {
  background-color: #000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

Código JavaScript

Finalmente, el siguiente script inicializa Typed.js y configura el efecto de desplazamiento al finalizar el texto:

const typedEffect = document.querySelector("#typed");
if (typedEffect) {
  var typed = new Typed("#typed", {
    stringsElement: "#typed-strings",
    startDelay: 1300,
    typeSpeed: 50,
    smartBackspace: false,
    contentType: "html",
    showCursor: false,
    onComplete: (self) => {
      typedEffect.classList.add("done");
      setTimeout(() => {
        const target = document.getElementById("section-2");
        target.scrollIntoView({ behavior: "smooth" });
      }, 3000);
    }
  });
}

¿Cómo funciona?

  • Typed.js: Este plugin se encarga de escribir el texto en el elemento HTML especificado, caracter por caracter.
  • Desplazamiento automático: Una vez que se completa el texto, la página se desplaza suavemente hacia la segunda sección, destacando el título del sitio.

¡Espero que este código te inspire a implementar efectos dinámicos en tus proyectos web!

Guía para Optimizar Imágenes con ImageOptim para un sitio web

ImageOptim es una aplicación para macOS diseñada para reducir el tamaño de las imágenes sin perder calidad perceptible. Esto no solo mejora el tiempo de carga de los sitios web, sino que también ahorra espacio en disco y ancho de banda. Cómo descargar ImageOptim Cómo usar ImageOptim El uso de…