…">
当前位置:首页 > 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使运动方向相反。

css制作蝴蝶飞

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

进阶优化

增加翅膀渐变效果:

css制作蝴蝶飞

.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);
}

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

@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制作教程

CSS 基础概念 CSS(层叠样式表)用于控制网页的视觉表现,包括布局、颜色、字体等。它与HTML结合使用,HTML负责结构,CSS负责样式。 基本语法结构 CSS规则由选择器和声明块组成: 选择…

css制作彩虹

css制作彩虹

使用线性渐变创建彩虹效果 通过CSS的linear-gradient属性可以轻松实现彩虹效果。以下是一个基础的彩虹样式代码: .rainbow { width: 100%; height:…

min.css制作

min.css制作

使用 min.css 制作轻量级样式 min.css 是一个极简的 CSS 框架,专注于轻量化和快速加载。以下是如何使用 min.css 进行开发的步骤。 引入 min.css 通过 CDN 直接引…

制作css选择器

制作css选择器

CSS选择器基础语法 CSS选择器用于定位HTML文档中的元素,以便为其应用样式。常见的基础选择器包括: 元素选择器:直接使用HTML标签名(如p、div) 类选择器:以.开头(如.header)…

css制作便签

css制作便签

CSS制作便签的方法 使用CSS可以轻松创建具有便签效果的样式,以下是一种常见的实现方式: HTML结构 <div class="note"> <h3>便签标题<…

制作css

制作css

制作CSS的基础方法 CSS(层叠样式表)用于控制网页的样式和布局。以下是创建和使用CSS的基本方法。 内联样式 直接在HTML元素的style属性中编写CSS代码。适用于单个元素的样式调整。…