当前位置:首页 > CSS

css制作蝴蝶飞

2026-01-28 15:34:49CSS

使用CSS动画制作蝴蝶飞效果

通过CSS的@keyframestransform属性可以创建蝴蝶飞舞的动画效果。以下是一个完整的实现示例:

HTML结构

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

CSS样式

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

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

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

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

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

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

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

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

实现原理说明

蝴蝶身体由三个部分组成:身体(细长椭圆)和两个翅膀(扇形)。翅膀使用border-radius创建有机形状。

css制作蝴蝶飞

翅膀动画通过transform: rotateY()实现3D翻转效果,transform-origin设置旋转中心点为翅膀根部。左右翅膀使用相反的动画方向(alternatealternate-reverse)实现交替扇动。

蝴蝶整体飞行路径通过translate()改变位置,配合rotate()实现转向效果,形成环形飞行轨迹。infinite使动画循环播放。

css制作蝴蝶飞

进阶优化建议

增加渐变颜色使翅膀更生动:

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

添加阴影增强立体感:

.body {
  box-shadow: 0 0 5px rgba(0,0,0,0.5);
}
.wing {
  box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
}

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

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

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

相关文章

css 制作导航

css 制作导航

基础导航栏制作 使用HTML和CSS创建一个水平导航栏。HTML结构通常使用<ul>和<li>标签,CSS负责样式布局。 <nav> <ul class…

css菜单制作

css菜单制作

基础水平菜单制作 使用无序列表<ul>和<li>标签构建结构,CSS设置横向排列: <ul class="horizontal-menu"> <li&g…

css个人简历制作两页

css个人简历制作两页

使用CSS制作两页个人简历 创建两页的个人简历需要合理布局和分页控制,以下是实现方法: HTML基础结构 <!DOCTYPE html> <html lang="zh-CN">…

css的制作

css的制作

CSS 的基本概念 CSS(层叠样式表)用于控制网页的样式和布局。通过 CSS 可以定义字体、颜色、间距、背景等视觉效果,使 HTML 结构更美观。 CSS 的引入方式 内联样式:直接在 HTML…

css loading制作

css loading制作

CSS Loading动画制作方法 通过CSS可以创建多种加载动画效果,以下是几种常见实现方式: 旋转动画 使用@keyframes创建旋转效果,适合圆形加载指示器: .loader {…

css网页制作

css网页制作

CSS 网页制作基础 CSS(层叠样式表)用于控制网页的视觉呈现,包括布局、颜色、字体等。以下为关键知识点和实用方法: 基本语法结构 CSS 规则由选择器和声明块组成: 选择器 { 属性: 值…