css制作叶子旋转
使用CSS制作叶子旋转效果
通过CSS的transform和animation属性可以实现叶子旋转效果。以下是具体实现方法:
HTML结构

<div class="leaf"></div>
CSS样式
.leaf {
width: 100px;
height: 100px;
background-color: #4CAF50;
border-radius: 0 100%;
position: relative;
animation: rotate 3s infinite linear;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
添加更真实的叶子效果
为了让叶子看起来更自然,可以添加一些细节:

.leaf {
width: 80px;
height: 80px;
background: linear-gradient(135deg, #4CAF50, #8BC34A);
border-radius: 0 100%;
box-shadow: 2px 2px 5px rgba(0,0,0,0.2);
position: absolute;
top: 50%;
left: 50%;
transform-origin: 0 0;
animation: sway 2s infinite ease-in-out alternate;
}
@keyframes sway {
0% {
transform: rotate(-15deg);
}
100% {
transform: rotate(15deg);
}
}
创建飘落效果
要实现叶子飘落的效果,可以添加更多动画:
.leaf {
animation:
fall 5s linear infinite,
sway 2s ease-in-out infinite alternate;
}
@keyframes fall {
to {
top: 100%;
}
}
多片叶子效果
通过创建多个叶子元素并设置不同的动画延迟,可以形成更自然的效果:
<div class="leaf-container">
<div class="leaf" style="--delay:0s;"></div>
<div class="leaf" style="--delay:1s;"></div>
<div class="leaf" style="--delay:2s;"></div>
</div>
.leaf-container {
position: relative;
height: 300px;
overflow: hidden;
}
.leaf {
width: 50px;
height: 50px;
background: linear-gradient(135deg, #4CAF50, #8BC34A);
border-radius: 0 100%;
position: absolute;
top: -50px;
left: calc(var(--left, 10) * 1%);
animation:
fall 10s linear infinite,
sway 3s ease-in-out infinite alternate;
animation-delay: var(--delay);
opacity: 0.8;
}
@keyframes fall {
to {
top: 100%;
left: calc(var(--left) * 1% + 20%);
}
}
这些CSS技巧可以创建出各种叶子旋转和飘落的效果,通过调整参数可以实现不同的视觉效果。






