使用CSS3实现牛顿摇摆球动画

要使用CSS3实现牛顿摇摆球动画,我们可以使用@keyframes规则来定义动画,然后使用animation属性将动画应用到元素上。以下是一个简单的实现示例:

HTML:

<div class="newton-cradle">
  <div class="ball"></div>
  <div class="ball"></div>
  <div class="ball"></div>
  <div class="ball"></div>
  <div class="ball"></div>
</div>

CSS:

.newton-cradle {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #f5f5f5;
}

.ball {
  width: 50px;
  height: 50px;
  margin: 0 10px;
  background-color: #333;
  border-radius: 50%;
  animation: swing 1s infinite alternate;
}

.ball:nth-child(1) { animation-delay: 0s; }
.ball:nth-child(2) { animation-delay: 0.2s; }
.ball:nth-child(3) { animation-delay: 0.4s; }
.ball:nth-child(4) { animation-delay: 0.6s; }
.ball:nth-child(5) { animation-delay: 0.8s; }

@keyframes swing {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}

在这个示例中,我们创建了一个包含5个球的牛顿摇摆球。每个球都应用了swing动画,该动画使用@keyframes规则定义。动画将球在垂直方向上移动,模拟摇摆效果。通过使用animation-delay属性,我们可以为每个球设置不同的延迟,从而创建出更自然的摇摆效果。

请注意,这只是一个简单的示例,你可以根据需要调整动画的持续时间、振幅和延迟等参数来达到你想要的效果。此外,你还可以使用JavaScript来增强交互性或实现更复杂的动画效果。

posted @ 2024-12-24 06:06  王铁柱6  阅读(44)  评论(0)    收藏  举报