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.
Estructura del Proyecto
Antes de empezar, veamos la estructura de nuestro proyecto. Necesitaremos tres archivos:
- HTML (index.html): Contiene la estructura básica de nuestro documento.
- CSS (style.css): Define los estilos para nuestra página y las animaciones.
- 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