当前位置:首页 > CSS

css制作风车

2026-02-13 07:43:30CSS

使用CSS制作风车效果

通过CSS的transformanimation属性可以创建旋转的风车效果。以下是一个完整的实现方法:

HTML结构

<div class="windmill">
  <div class="blade"></div>
  <div class="blade"></div>
  <div class="blade"></div>
  <div class="blade"></div>
  <div class="center"></div>
</div>

CSS样式

.windmill {
  position: relative;
  width: 200px;
  height: 200px;
  margin: 100px auto;
}

.blade {
  position: absolute;
  width: 100px;
  height: 20px;
  background-color: #f00;
  top: 90px;
  left: 50px;
  transform-origin: 0 50%;
  animation: rotate 2s linear infinite;
}

.blade:nth-child(1) { transform: rotate(0deg); }
.blade:nth-child(2) { transform: rotate(90deg); }
.blade:nth-child(3) { transform: rotate(180deg); }
.blade:nth-child(4) { transform: rotate(270deg); }

.center {
  position: absolute;
  width: 40px;
  height: 40px;
  background-color: #333;
  border-radius: 50%;
  top: 80px;
  left: 80px;
  z-index: 10;
}

@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

实现原理

  1. 基础结构:使用一个容器windmill作为风车底座,内部包含四个叶片和一个中心点
  2. 叶片定位:所有叶片使用绝对定位,初始位置重叠
  3. 旋转分布:通过transform: rotate()将四个叶片均匀分布在圆周上(每90度一个)
  4. 旋转动画:定义rotate关键帧动画实现无限旋转效果
  5. 旋转中心:通过transform-origin设置叶片以左端为中心旋转

自定义选项

  1. 改变颜色:修改.bladebackground-color属性可调整叶片颜色
  2. 调整速度:修改animation-duration的值(如1s加快,3s减慢)
  3. 叶片形状:通过border-radiusclip-path可创建不同形状的叶片
  4. 叶片数量:增加或减少.blade元素数量,并调整旋转角度(如60度间隔6个叶片)

响应式调整

添加媒体查询使风车适应不同屏幕尺寸:

@media (max-width: 600px) {
  .windmill {
    transform: scale(0.7);
  }
}

css制作风车

标签: 风车css
分享给朋友:

相关文章

css动画制作

css动画制作

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

css二级菜单制作

css二级菜单制作

使用纯CSS实现二级菜单 通过嵌套HTML结构和CSS选择器实现二级菜单的显示与隐藏效果。以下是一个基础实现方案: HTML结构: <ul class="menu"> <…

css 制作表单

css 制作表单

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

css制作登录界面

css制作登录界面

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

css立体相册制作

css立体相册制作

制作CSS立体相册 使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。 HTML结构 <div class="photo-album"> <di…

css焦点图制作

css焦点图制作

使用纯CSS制作焦点图 通过CSS的动画和过渡效果实现简单焦点图轮播,无需JavaScript。以下是一个基础实现方案: <div class="slider"> <div c…