Ir al contenido

IDEAS PRÁCTICAS · ASIMOV INGENIERÍA

Implementación de Animaciones al Hacer Scroll

JS, HTML Y CSS

Table of contents

No titles in the blog post

Las animaciones al hacer scroll son una excelente manera de agregar interactividad y dinamismo a tu sitio web. Pueden captar la atención de los usuarios y hacer que la experiencia de navegación sea más atractiva. En este blog, aprenderemos cómo implementar una animación simple al hacer scroll utilizando HTML, CSS y JavaScript.

Computadora portátil con código en un escritorio
Imagen ilustrativa · Christopher Gower / Unsplash.

Estructura del Proyecto

Antes de empezar, veamos la estructura de nuestro proyecto. Necesitaremos tres archivos:

  1. HTML (index.html): Contiene la estructura básica de nuestro documento.
  2. CSS (style.css): Define los estilos para nuestra página y las animaciones.
  3. JavaScript (script.js): Añade la funcionalidad para detectar el scroll y aplicar las animaciones.

Lo que haremos:



Código HTML

Nuestro archivo HTML define la estructura básica de la página y contiene varios elementos que se animarán al hacer scroll.

HTML

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Scroll Animation</title>

    <link rel="stylesheet" href="./style.css">

</head>

<body>

    <h1>Scroll Animation</h1>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <div class="box"><h2>content</h2></div>

    <script src="./script.js"></script>

</body>

</html>

Código CSS

El archivo CSS se encarga de estilizar los elementos y definir las animaciones que se activarán al hacer scroll.

CSS

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');

* {

    box-sizing: border-box;

}

body {

    background-color: #efedd6;

    font-family: 'Roboto', sans-serif;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    margin: 0;

    overflow-x: hidden;

}

h1 {

    margin: 10px;

}

.box {

    background-color: steelblue;

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: center;

    width: 400px;

    height: 200px;

    margin: 10px;

    border-radius: 10px;

    box-shadow: 2px 4px 5px rgba(0,0,0,0.3);

    transform: translateX(400%);

    transition: transform 0.4s ease;

}

.box:nth-of-type(even) {

    transform: translateX(-400%);

}

.box.show {

    transform: translateX(0);

}

.box h2 {

    font-size: 45px;

}

Código JavaScript

El archivo JavaScript añade la funcionalidad para detectar el scroll y aplicar la clase show a los elementos .box cuando estos entran en la vista del usuario.

JS

const boxes = document.querySelectorAll('.box');

window.addEventListener('scroll', checkBoxes);

checkBoxes();

function checkBoxes() {

    const triggerBottom = window.innerHeight / 5 * 4;

    boxes.forEach(box => {

        const boxTop = box.getBoundingClientRect().top;

        if (boxTop < triggerBottom) {

            box.classList.add('show');

        } else {

            box.classList.remove('show');

        }

    });

}
¡Contáctanos!

Si tienes preguntas, aclaraciones, sugerencias de temas o cualquier otra consulta, ¡no dudes en ponerte en contacto con nosotros! Por favor, completa el formulario de contacto disponible en este enlace, y estaremos encantados de ayudarte.

Si quieres acceder a mi GitHub para tener acceso a este código y a muchos más accede en el siguiente link