…">
当前位置:首页 > 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创建一个基础按钮需要定义padding、background-color、border和border-radius等属性。以下是一个简单示例: .button { pad…

css制作箭头

css制作箭头

使用 CSS 边框制作箭头 通过调整元素的 border 属性,利用透明边框和实色边框的组合生成箭头。例如,创建一个向右的箭头: .arrow-right { width: 0; hei…

css样式表制作

css样式表制作

CSS样式表制作基础 CSS(层叠样式表)用于控制网页的视觉呈现。通过CSS可以定义字体、颜色、布局等样式属性。 内联样式 直接在HTML标签中使用style属性定义样式: <p style…

css 制作表单

css 制作表单

使用 CSS 制作表单 表单是网页交互的重要组成部分,通过 CSS 可以美化表单元素,提升用户体验。以下是常见的表单样式设计方法。 基础表单结构 HTML 表单通常包含输入框、标签、按钮等元素。以下…

用css制作表格

用css制作表格

使用CSS制作表格 CSS可以用来样式化HTML表格,使其更具视觉吸引力和功能性。以下是几种常见的方法: 基础表格样式 通过CSS可以调整表格的边框、间距和颜色: <table>…

css制作卷边效果

css制作卷边效果

使用伪元素和渐变实现卷边效果 通过CSS伪元素和线性渐变可以模拟纸张卷边的视觉效果。这种方法不需要额外元素,仅通过::before或::after伪元素实现。 .element { positi…