返回

CSS:跳跃的小红花

前端

前言

今天我们一起来制作一个纯CSS实现的摇摆的小红花,布局上使用HTML+CSS布局,加上CSS3动画效果,本文还将介绍一个新的知识点transform-origin。该属性用来设置动画旋转元素的基点位置。

实现步骤

1. HTML结构

<!DOCTYPE html>
<html>
<head>
  
</head>
<body>
  <div class="flower">
    <div class="stem"></div>
    <div class="petal"></div>
  </div>
</body>
</html>

2. CSS样式

.flower {
  position: relative;
  width: 200px;
  height: 200px;
  margin: 0 auto;
}

.stem {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 20px;
  height: 100px;
  background-color: green;
}

.petal {
  position: absolute;
  left: 50%;
  top: 0;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: red;
}

.petal:before,
.petal:after {
  content: "";
  position: absolute;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: red;
}

.petal:before {
  left: -25px;
  top: -25px;
}

.petal:after {
  right: -25px;
  top: -25px;
}

/* 动画 */
.flower {
  animation: swing 3s infinite alternate;
}

@keyframes swing {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(15deg);
  }
  100% {
    transform: rotate(0deg);
  }
}

3. 解释

首先,我们使用HTML结构定义了花朵的各个部分,包括花茎和花瓣。

接下来,我们使用CSS样式为花朵设置样式。其中,position属性设置为relative,以便花瓣能够相对于花茎定位。lefttop属性将花瓣定位在花茎的中心。

然后,我们使用transform属性为花瓣添加动画效果。transform: rotate(15deg);将花瓣旋转15度。animation属性定义了动画的名称、持续时间和重复次数。

最后,我们使用@keyframes规则定义了动画的关键帧。0%100%关键帧将花瓣旋转回原来的位置,50%关键帧将花瓣旋转15度。

总结

以上就是使用纯CSS实现摇摆的小红花的步骤。通过本文,您学习了如何使用CSS3动画、transform和transform-origin来创建动画效果。希望您能将这些知识应用到自己的项目中。