x

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Sobre de Amor</title>

<style>
body{
  display:flex;
  justify-content:center;
  align-items:center;
  height:100vh;
  background:#f8c8dc;
  font-family: Arial, sans-serif;
  overflow:hidden;
}

/* CONTENEDOR */
.container{
  position:relative;
  cursor:pointer;
}

/* SOBRE */
.envelope{
  position:relative;
  width:300px;
  height:200px;
  background:#f5e6cc;
  border-radius:5px;
  overflow:hidden;
  box-shadow:0 10px 25px rgba(0,0,0,0.2);
}

/* SOLAPA */
.flap{
  position:absolute;
  width:100%;
  height:100%;
  background:#f0d9b5;
  clip-path: polygon(0 0, 100% 0, 50% 60%);
  transform-origin:top;
  transition:transform 1s ease;
}

/* CARTA */
.letter{
  position:absolute;
  width:90%;
  height:90%;
  background:white;
  top:5%;
  left:5%;
  border-radius:5px;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  transform:translateY(100%);
  transition:transform 1s ease;
  text-align:center;
  padding:10px;
}

.open .flap{
  transform:rotateX(180deg);
}

.open .letter{
  transform:translateY(0);
}

h2{
  color:#d6336c;
}

p{
  color:#444;
}

/* CORAZONES */
.heart{
  position:absolute;
  font-size:20px;
  animation:floatUp 3s linear forwards;
  pointer-events:none;
}

@keyframes floatUp{
  0%{
    transform:translateY(0) scale(1);
    opacity:1;
  }
  100%{
    transform:translateY(-300px) scale(1.5);
    opacity:0;
  }
}
</style>
</head>

<body>

<div class="container" onclick="openEnvelope(event)">
  <div class="envelope">
    <div class="flap"></div>
    <div class="letter">
      <h2>Para Ti ❤️</h2>
      <p>Eres lo más bonito que llegó a mi vida.</p>
    </div>
  </div>
</div>

<script>
function openEnvelope(event){
  const container = document.querySelector('.container');
  container.classList.toggle('open');

  // Crear corazones
  for(let i=0;i<20;i++){
    createHeart(event.clientX, event.clientY);
  }
}

function createHeart(x,y){
  const heart = document.createElement("div");
  heart.classList.add("heart");
  heart.innerHTML = "❤️";

  heart.style.left = (x + (Math.random()*100 - 50)) + "px";
  heart.style.top = (y + (Math.random()*50)) + "px";
  heart.style.fontSize = (Math.random()*20 + 15) + "px";

  document.body.appendChild(heart);

  setTimeout(()=>{
    heart.remove();
  },3000);
}
</script>

</body>
</html>

Comentarios

Entradas populares de este blog

mapa gps

No hay nada que perder

No aprendí a olvidarte