返回
CSS:跳跃的小红花
前端
2024-02-22 02:36:02
前言
今天我们一起来制作一个纯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
,以便花瓣能够相对于花茎定位。left
和top
属性将花瓣定位在花茎的中心。
然后,我们使用transform
属性为花瓣添加动画效果。transform: rotate(15deg);
将花瓣旋转15度。animation
属性定义了动画的名称、持续时间和重复次数。
最后,我们使用@keyframes
规则定义了动画的关键帧。0%
和100%
关键帧将花瓣旋转回原来的位置,50%
关键帧将花瓣旋转15度。
总结
以上就是使用纯CSS实现摇摆的小红花的步骤。通过本文,您学习了如何使用CSS3动画、transform和transform-origin来创建动画效果。希望您能将这些知识应用到自己的项目中。