当前位置:首页 > 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创建有机形状。

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

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

进阶优化建议

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

.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

怎么制作css

创建CSS文件 新建一个文本文件,将文件扩展名改为.css。例如styles.css。确保文件名简洁且能反映其用途。 编写CSS基础结构 CSS由选择器和声明块组成。选择器用于指定要样式化的HTM…

css动画制作

css动画制作

CSS动画制作方法 使用@keyframes规则定义动画序列,通过animation属性将动画应用到元素上。以下是一个基础示例: @keyframes fadeIn { from { opac…

css 导航栏制作

css 导航栏制作

水平导航栏制作 使用无序列表<ul>和<li>标签构建基础结构,通过CSS将列表项横向排列 <nav> <ul class="horizontal-na…

css制作登录界面

css制作登录界面

使用CSS制作登录界面 登录界面是网站常见的功能模块,通过CSS可以实现美观且响应式的设计。以下是一个基础的登录界面实现方法。 HTML结构 基础的HTML结构包含表单元素,如输入框、按钮和标签。…

css网页制作教程下载

css网页制作教程下载

CSS网页制作教程下载资源推荐 免费在线教程平台 W3Schools(www.w3schools.com/css/)提供交互式CSS教程,涵盖基础到高级内容,支持在线练习。 MDN Web Docs(…

纯css制作下拉菜单

纯css制作下拉菜单

纯CSS下拉菜单实现方法 通过CSS的:hover伪类和display属性可以实现纯CSS下拉菜单,无需JavaScript。以下是具体实现方式: HTML结构示例: <nav clas…