WordPress Tecnologias y Gadgets

Buscador de temas

javascript puntos animados

Código para crear el efecto de unos puntos alrededor del puntero del ratón

¿Te has preguntado cómo se crean esos efectos visuales dinámicos que ves en algunas páginas web? Uno de los más populares es el efecto de «puntos que siguen al ratón», una forma simple pero efectiva de añadir interactividad y una estética única a tu sitio.

Efecto de unos puntos alrededor del puntero del ratón

interactividad web puntos

En este post, te mostraré cómo crear este efecto desde cero usando las tecnologías web actuales: HTML, CSS y JavaScript. Nos olvidaremos de los códigos obsoletos y nos centraremos en un método moderno, limpio y eficiente.

¿Cómo funciona el efecto?

La idea es simple:

  1. HTML: Creamos varios elementos div que servirán como los puntos.
  2. CSS: Les damos estilo (forma, tamaño, color) y nos aseguramos de que no bloqueen los clics en la página.
  3. JavaScript: Usamos un bucle de animación para que cada punto siga al que tiene delante, creando una «cola» o rastro de movimiento.

El resultado es un efecto de rastro suave y fluido que parece estar vivo.

El código completo

Aquí tienes el código listo para usar. Puedes copiar y pegar cada parte en sus archivos correspondientes.

puntos raton seguimiento

1. Archivo index.html

Crea este archivo para la estructura de la página y el estilo básico.

HTML

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Efecto de puntos moderno</title>
    <style>
        body {
            background-color: #121212;
            overflow: hidden;
            height: 100vh;
            margin: 0;
            cursor: none; /* Oculta el cursor nativo */
        }

        .dot {
            position: absolute;
            width: 15px;
            height: 15px;
            background-color: #61dafb;
            border-radius: 50%;
            pointer-events: none;
            transition: transform 0.1s ease-out, opacity 0.5s ease;
            opacity: 0.8;
            will-change: transform;
        }
    </style>
</head>
<body>
    <script src="script.js"></script>
</body>
</html>

2. Archivo script.js

Este es el corazón del proyecto. Crea este archivo y añade la lógica de movimiento.

JavaScript

// Número de puntos que quieres mostrar
const numDots = 25;

// Almacena los elementos HTML y sus posiciones
const dots = [];
const dotPositions = [];

// Crea y configura los puntos
for (let i = 0; i < numDots; i++) {
    const dot = document.createElement('div');
    dot.classList.add('dot');
    document.body.appendChild(dot);
    dots.push(dot);
    dotPositions.push({ x: 0, y: 0 });
}

let mouseX = 0;
let mouseY = 0;

// Escucha el movimiento del ratón
document.addEventListener('mousemove', (e) => {
    mouseX = e.clientX;
    mouseY = e.clientY;
});

// Bucle de animación
function animate() {
    // El primer punto sigue al ratón
    dotPositions[0].x = mouseX;
    dotPositions[0].y = mouseY;

    // Los demás puntos siguen al anterior, con un pequeño retraso
    for (let i = 1; i < numDots; i++) {
        dotPositions[i].x += (dotPositions[i - 1].x - dotPositions[i].x) * 0.1;
        dotPositions[i].y += (dotPositions[i - 1].y - dotPositions[i].y) * 0.1;
    }

    // Aplica las posiciones a los elementos HTML
    dots.forEach((dot, index) => {
        dot.style.transform = `translate(${dotPositions[index].x}px, ${dotPositions[index].y}px)`;
    });

    // Sincroniza con el navegador para una animación fluida
    requestAnimationFrame(animate);
}

// Inicia el efecto
animate();

¿Cómo lo personalizas?

  • numDots: Aumenta o disminuye este valor para cambiar la cantidad de puntos.
  • CSS .dot: Modifica las propiedades width, height o background-color para cambiar la apariencia de los puntos.
  • Velocidad de seguimiento: En el bucle animate, cambia el valor 0.1 a un número más pequeño para un movimiento más lento o a uno más grande para un movimiento más rápido.

¡Intenta añadir este efecto a tu próximo proyecto web y dale un toque único! ¿Qué otra cosa te gustaría aprender a crear con JavaScript?

Resume el artículo con tu IA favorita y compate en redes

Deja un comentario

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

Pin It on Pinterest

Share This