…">
当前位置:首页 > CSS

css制作蝴蝶飞

2026-02-13 09:53:50CSS

CSS制作蝴蝶飞动画

使用CSS动画和关键帧(@keyframes)可以轻松实现蝴蝶飞舞的效果。以下是一个完整的实现方案:

HTML结构

<div class="butterfly">
  <div class="left-wing"></div>
  <div class="right-wing"></div>
  <div class="body"></div>
</div>

CSS样式

.butterfly {
  position: absolute;
  width: 100px;
  height: 80px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.body {
  position: absolute;
  width: 10px;
  height: 40px;
  background-color: #333;
  left: 45px;
  top: 20px;
  border-radius: 5px;
}

.left-wing, .right-wing {
  position: absolute;
  width: 40px;
  height: 30px;
  background-color: #f06;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}

.left-wing {
  left: 5px;
  top: 10px;
  transform-origin: right center;
  animation: flap 0.5s infinite alternate;
}

.right-wing {
  right: 5px;
  top: 10px;
  transform-origin: left center;
  animation: flap 0.5s infinite alternate-reverse;
}

@keyframes flap {
  0% {
    transform: rotateY(0deg);
  }
  100% {
    transform: rotateY(60deg);
  }
}

.butterfly {
  animation: fly 10s infinite linear;
}

@keyframes fly {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  25% {
    transform: translate(200px, 100px) rotate(90deg);
  }
  50% {
    transform: translate(400px, -50px) rotate(180deg);
  }
  75% {
    transform: translate(200px, -100px) rotate(270deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

实现原理

翅膀动画通过@keyframes flap实现扇动效果,利用transform: rotateY()创造3D旋转感。左翼和右翼分别使用alternatealternate-reverse使运动方向相反。

蝴蝶整体飞行路径由@keyframes fly控制,通过在不同关键帧设置transform属性的变化,实现蝴蝶在页面上的飞行轨迹。translate()控制位置移动,rotate()控制飞行方向。

进阶优化

增加翅膀渐变效果:

.left-wing, .right-wing {
  background: linear-gradient(45deg, #f06, #f9a);
}

添加蝴蝶触角:

.body::before, .body::after {
  content: '';
  position: absolute;
  width: 2px;
  height: 10px;
  background: #333;
  top: -10px;
}

.body::before {
  left: 2px;
  transform: rotate(-30deg);
}

.body::after {
  right: 2px;
  transform: rotate(30deg);
}

调整飞行路径为更自然的曲线:

css制作蝴蝶飞

@keyframes fly {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  25% {
    transform: translate(200px, 150px) rotate(45deg);
  }
  50% {
    transform: translate(400px, 0) rotate(0deg);
  }
  75% {
    transform: translate(200px, -150px) rotate(-45deg);
  }
  100% {
    transform: translate(0, 0) rotate(0deg);
  }
}

标签: 蝴蝶css
分享给朋友:

相关文章

css怎么制作段落

css怎么制作段落

段落样式基础设置 使用 p 标签定义段落,通过CSS控制字体、间距等属性: p { font-family: Arial, sans-serif; font-size: 16px;…

css网站制作

css网站制作

CSS网站制作基础 选择适合的CSS框架或预处理器(如Bootstrap、Tailwind CSS、Sass/Less)能加速开发。现代CSS支持Flexbox和Grid布局,需掌握响应式设计原则。…

css制作日历

css制作日历

使用CSS Grid布局制作日历 日历的布局适合使用CSS Grid实现,因其天然的行列结构。以下是一个基础日历的HTML和CSS代码: <div class="calendar">…

css页脚制作

css页脚制作

CSS页脚制作方法 基础页脚结构 在HTML中创建页脚的基本结构,使用<footer>标签包裹内容: <footer> <div class="footer-con…

vue制作css

vue制作css

Vue 中制作 CSS 的常用方法 在 Vue 中可以通过多种方式编写 CSS,以下是常见的几种方法: 1. 单文件组件中的 <style> 标签 在 .vue 文件中直接使用 <…

css文件怎么制作

css文件怎么制作

创建CSS文件的方法 新建一个纯文本文件,将文件后缀名改为.css。例如style.css。可以使用任何文本编辑器(如记事本、VS Code、Sublime Text等)创建和编辑该文件。 编写CS…