要实现炉石开卡牌包的效果,你可以使用CSS的动画和过渡效果。以下是一种可能的实现方式:

HTML结构:

<div class="card-pack">
  <div class="pack"></div>
  <div class="cards">
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
    <div class="card"></div>
  </div>
</div>

CSS样式:

.card-pack {
  position: relative;
  width: 200px;
  height: 260px;
}

.pack {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url('pack.png');
  background-size: cover;
  cursor: pointer;
  transition: transform 0.3s;
}

.pack.shake {
  animation: shake 0.5s ease-in-out;
}

@keyframes shake {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

.cards {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s, transform 0.5s;
}

.card {
  width: 30px;
  height: 40px;
  background-color: #ccc;
  border-radius: 5px;
}

.cards.show {
  opacity: 1;
  transform: translateY(0);
}

JavaScript代码:

const pack = document.querySelector('.pack');
const cards = document.querySelector('.cards');

pack.addEventListener('click', () => {
  pack.classList.add('shake');
  setTimeout(() => {
    pack.style.display = 'none';
    cards.classList.add('show');
  }, 500);
});

在上面的代码中,我们通过添加.shake类来实现点击包时的震颤效果。在震颤完成后,我们通过将包的display属性设置为none来隐藏包,然后通过添加.show类来显示卡牌。通过CSS的过渡效果,卡牌会从底部上升并显示出来。

请注意,上述代码中的pack.png是指代卡牌包的背景图片,你需要根据实际情况修改该属性。此外,你还可以对CSS样式进行进一步的调整,以达到更理想的效果。


原文地址: https://www.cveoy.top/t/topic/i2Gt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录