CSS 实现风吹动树叶的动画

如题,要实现树叶在风中摇摆的动画,首先准备主体:树叶。

这里准备了两张矢量的高清版 SVG 格式的不同种类的树叶。

首先我们使用 img 标签来在网页中显示树叶,然后给它一个名为 leaf 的类,好给它附加样式。

ini 复制代码
<img class="leaf" src="/blog/virtual_safari_leaf.svg" alt="Leaf" />

接下来就是编写 CSS 动画代码,这里利用了 tranform 属性中的两个变换,skew 将元素在二维平面上倾斜角度进行拉伸,rotate 以中心为坐标轴进行旋转。

css 复制代码
.leaf {
  transform: scale(0.8);
  animation: leftRuffle 3s infinite alternate;
}

@keyframes leftRuffle {
  50% {
    transform: scale(0.8) skew(5deg) rotate(-5deg);
  }
  100% {
    transform: scale(0.8) skew(0) rotate(0);
  }
}

我们先让第一个树叶动起来

第二个树叶我们将它左右翻转下,利用 scaleX(-1),然后同理

css 复制代码
.leaf {
  transform: scale(0.7) scaleX(-1);
  animation: rightRuffle 3s infinite alternate;
}

@keyframes rightRuffle {
  0% {
    transform: scale(0.7) scalex(-1) skew(0) rotate(0);
  }
  50% {
    transform: scale(0.7) scalex(-1) skew(5deg) rotate(-5deg);
  }
  100% {
    transform: scale(0.7) scalex(-1) skew(0) rotate(0);
  }
}

动是动起来了,可单独看是否觉得有点奇怪。

我们给它增加一个场景:

通常这种大树叶的绿植要么生长在热带雨林,要么被我们放在室内当做风景或者背景。

原文阅读体验更佳:spacexcode.com/blog/animat...

相关推荐
寂寞狼牙冷3 分钟前
封装fetch替换axios
前端
用户4611696572819 分钟前
网站 HTTPS 不稳定?证书排查指南
前端
n876531 分钟前
Playwright Java WEB UI 自动化实现框架与逻辑
java·前端·ui
keyipatience33 分钟前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
xifangge20251 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
wangruofeng1 小时前
2026 Web 技术选型指南,AI 时代如何选择适合项目的技术栈
前端·aigc·ai编程
honkun62 小时前
vue 表格组件 vxe-table 修改滚动条样式,修改滚动条样式,统一宽度、颜色与自动隐藏
前端·javascript·vue.js
爱勇宝2 小时前
研究数字孪生的这半年,做了个 Demo,也有了一些新想法
前端·程序员
不可能片场2 小时前
工程实践 一个缓存把选片从十分钟压到一分钟
前端·electron
前端小万2 小时前
探索副业五个月,最终以放弃告终
前端·后端·面试