Pantalla completa ↗
← Código

El botón que no te deja decir que no

10 oct 2026· nivel fácil· 4 líneasJavaScriptmicrointeracciónhumor

Pasas el ratón (o el dedo) por encima de «No» y el botón huye a otro sitio de la pantalla. Cuatro líneas de JavaScript, sin librerías.

PARA TU NEGOCIOEncuestas con humor, páginas de San Valentín, «¿te suscribes?» o un 404 divertido: la gente lo intenta, se ríe y lo comparte.

// CÓMO FUNCIONA

  1. Escuchamos «pointerenter»: salta en cuanto el ratón o el dedo llegan al botón, antes de poder pulsarlo.
  2. Calculamos un sitio al azar que quepa en la pantalla: ancho de la ventana menos el ancho del botón.
  3. Lo movemos con transform: translate(), que no descoloca el resto de la página.
  4. Una transición con rebote (cubic-bezier) hace que el salto se vea gracioso en vez de brusco.

// EL CÓDIGO

// La página entera: guárdala como .html y ábrela en el navegador.

<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>¿Quieres una web nueva?</title>
<style>
  body{margin:0;height:100vh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 40%,#0B2216,#05070A 70%);color:#E8F5EE;font-family:system-ui,'Segoe UI',sans-serif;text-align:center}
  h1{font-size:clamp(30px,8vw,56px);font-weight:900;letter-spacing:-1px;line-height:1.05;margin:0 0 40px}
  .botones{display:flex;gap:24px;justify-content:center}
  button{font:800 clamp(20px,5vw,30px) system-ui,sans-serif;padding:16px 42px;border-radius:999px;border:0;cursor:pointer}
  #si{background:#00FF7F;color:#05070A;box-shadow:0 0 40px #00FF7F66}
  #no{background:#2b2f2d;color:#E8F5EE;transition:transform .25s cubic-bezier(.2,.9,.3,1.3)}
  #ok{font-size:clamp(34px,9vw,64px);font-weight:900;color:#00FF7F;margin-top:34px;opacity:0;transform:scale(.6);transition:.3s}
</style>
</head>
<body>
<div>
  <h1>¿Quieres una<br>web nueva?</h1>
  <div class="botones"><button id="si">Sí 💚</button><button id="no">No</button></div>
  <div id="ok">¡Genial! 🎉</div>
</div>
<script>
  // El truco: cuando el puntero (o el dedo) llega a «No», el botón salta a otro sitio de la pantalla
  const no = document.querySelector('#no');
  no.addEventListener('pointerenter', () => {
    const x = Math.random() * (innerWidth - no.offsetWidth) - no.offsetLeft;
    const y = Math.random() * (innerHeight - no.offsetHeight) - no.offsetTop;
    no.style.transform = `translate(${x}px, ${y}px)`;
  });

  // Y «Sí» lo celebra
  document.querySelector('#si').addEventListener('click', () => {
    ok.style.opacity = 1; ok.style.transform = 'scale(1)';
  });
</script>
</body>
</html>
  • Funciona en todos los navegadores modernos, en ordenador y en móvil.
  • Sin librerías ni instalaciones.

¿Lo quieres en tu web y no te ves con fuerzas?

En AEWorks lo montamos por ti, junto con lo que necesite tu negocio.
Hablemos →

Ver el vídeo ↗