前面讲过css3可以替代很多js实现的效果,其实很多时候纯css3甚至可以替代图片,直接用css3就可以画出一些简单的图片。虽然css3画出来的图片效果可能不如直接用图片的好,实现起来也比较复杂,最麻烦的是兼容性问题,不如图片来得直接实用。但是换一种思路去思考问题的解决办法往往能激发我们的灵感,也有助于我们学习css3。

下面给出的demo里会有用图片和纯css3实现的风车效果的对比。

先看看静态的效果图:

纯css3实现的风车动画效果图

下面简单介绍一下我是如何用纯css3实现一个风车的动画效果的,

1.画出风车的柱子

我们可以看到风车的柱子是一个等边的梯形,通过width,height属性配合border我们可以实现很多几何图形,如三角形,梯形等等,大家可以参照下面梯形的实现方法自己试试其他图形的实现。

display:block;

height: 0;

width:4px;

border-width: 04px80px4px;

border-style:nonesolidsolid;

border-color:transparenttransparentwhite;

效果图

风车车柱实现效果

2.画风车的轴

这一步比较简单,用border-radius圆角属性可以轻松实现。

width:4px;

height:4px;

border:3px#fffsolid;

background:#a5cad6;

border-radius:5px;

效果图

风车轴心实现效果

3.画风车的叶子

风车叶子的实现与柱子的实现原理相同,只不过是吧梯形倒过来了。

height: 0;

width:2px;

border-width:50px2px0px2px;

border-style:solidsolidnone;

border-color:whitetransparenttransparent;

4.定位风车页

这里使用css3中transform的rotate(旋转)来实现,有一点要注意的是,使用rotate时先要用origin定位旋转的圆心,默认是元素的中心,这里我们要定位在元素的顶部。

-webkit-transform-origin:0px0px;

-webkit-transform:rotate(60deg);

效果图

风车扇页实现效果

用上面的办法依次画出三个风车扇面,并且定位好角度。

5.实现扇页的动态效果

静态的风车画好了,接下来我们要做的就是让它动起来。

前面我们可以把扇页定位在轴心元素的子元素,这样我们只要实现轴心的转动效果就可以让扇页也跟着动起来了。

下面是动画的实现

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

把实现好的动画方法rotate放到我们的轴心元素中,扇页就可以动起来啦。

-webkit-animation: rotate 4s linear infinite;

6.完善效果并实现兼容性

至此我们的风车已经基本上完成啦,前面的代码都是兼容webkit核心浏览器(chrome,safari),接下来实现对其他浏览器的兼容,并且加上一个鼠标悬浮加快转动的效果我们的风车就算完成啦。

css3的表现在各个浏览器下的表现不尽相同,chrome浏览器下效果最佳,safari下风车的柱子会有像素失真的问题(同是webkit核心,不知道为什么表现那么不一样),后续会尝试解决这个问题。

下面提供demo和下载地址

用html怎么制作风车,如何用css3实现风车效果相关推荐

  1. html 风车特效,用css3实现风车效果_html/css_WEB-ITnose

    前面讲过css3可以替代很多js实现的效果,其实很多时候纯css3甚至可以替代图片,直接用css3就可以画出一些简单的图片.虽然css3画出来的图片效果可能不如直接用图片的好,实现起来也比较复杂,最麻 ...

  2. 如何用css3实现简单旋转的风车

    如何用css3实现简单旋转的风车 在DW中想要实现旋转的风车就要使用关键帧keyframes来设置旋转,其实也没什么难度的.先设置它的样式,然后要用定位把它放到合适的位置就可以了. HTML的代码如下 ...

  3. php设置加载动画,如何用CSS3制作页面圆圈加载动画(附代码)

    打开页面时,经常会遇到页面正在加载的情况,作为一个前端工程师,你知道如何用CSS3实现页面加载动画效果吗?这篇文章就和大家分享一个炫酷的圆圈加载动画效果的代码,有一定的参考价值,感兴趣的朋友可以看看. ...

  4. html背景纹理,如何用css3制作纹理背景

    如何用css3制作纹理背景 看到题目大家也许会想,这是什么意思,一直想系统一下自己的css3的知识,才发现自己对css3的掌握程度简直不敢直视,很多地方都差了好多,暂且一点点来学吧! 记得有一天在微博 ...

  5. CSS动画编辑软件,如何用css3在app制作出如丝般顺滑的动画

    原标题:如何用css3在app制作出如丝般顺滑的动画 在移动端上实现动画很简单. 在移动端上正确地实现动画也比较简单...如果你采纳我们的建议的话. 虽然现在每个人都会使用 CSS3 实现动画,但许多 ...

  6. 可控制转速CSS3旋转风车特效

    以前制作网页动画一般使用javascript,现在已经有越来越多动动画使用纯CSS实现,并且动画的控制也可以使用CSS3实现,因为CSS 3来了,CSS 3的动画功能确实强大.以下是一个纯CSS3制作 ...

  7. ❤生日快乐网站模板HTML❤(精品制作)(HTML5+CSS3+JS)

    生日快乐网站模板HTML(精品制作)(HTML5+CSS3+JS) 最近姐姐的生日快到了,想着也没有什么礼物送给她,恰好因为CTF的原因学了点HTML和JavaScript,就做了两个网页,当然因为网 ...

  8. html怎么制作3D字体,用CSS3制作3D文字效果代码实例教程

    这个简单的CSS文本阴影教程将一步步教你如何通过堆叠多层阴影来创建3D文字,然后进一步利用CSS3的transform和transition属性来实现鼠标移过字体放大的效果. 阿里西西web开发网为大 ...

  9. css3蒲公英飘动效果_CSS3 Animation制作飘动的浮云和星星效果

    带平行视差效果的星星 先看效果: 下面我们利用CSS3的animation写出这样的动画来,要点就是: 用动画不停改变背景图片位置; 动画高为无限循环; 在页面放三个DIV,首先将他们大小铺满整个窗口 ...

最新文章

  1. 计算机软件uml,计算机软件——UML旅游管理系统
  2. JAVA 文件读写大全
  3. 【深度学习】重大里程碑!VOLO屠榜CV任务,无需额外数据,首个超越87%的模型...
  4. java web随机抽取_java实现随机抽取奖品工具类
  5. 文件上传案例——客户端和服务端套接字
  6. 祝贺王远当选为中国区第二位 Teams MVP
  7. 找对象不能只看TA的外表
  8. oracle虚拟机字符集,更改虚拟机上的oracle字符集
  9. MySQL 字段默认值该如何设置
  10. OSPF高级特性——LSA-3(Network Summary LSA)的过滤、路由协议——管理距离的修改、外部路由的metric值的修改
  11. jsfor循环终止_详解如何在JS代码中消灭for循环
  12. 启动、停止和重新启动vcenter服务
  13. 攻击者利用7号信令(SS7)中的漏洞从德国银行偷取钱财
  14. 三险一金包括什么?三险和五险有什么区别?
  15. 新在线一键制作表白网系统源码
  16. 搜索引擎是如何评估网页内容优劣的
  17. app三种工具的元素定位与swipe 滑动
  18. 天然“降脂药”,帮你“吃掉”血脂!
  19. Android Studio 4.1 发布
  20. 【工业机器人】两分钟读懂工业机器人的设计过程

热门文章

  1. 原生js实现二级伸缩菜单
  2. qq账号存在异常原因
  3. location.reload()和location.replace()的区别与应用
  4. MFC MoveWindow后控件不见了
  5. 人人都是产品经理2.0-03章摘要总结
  6. 输入8-16位数字和字母组成的密码
  7. java enum使用_java enum用法详解
  8. 贪心算法--乘船问题
  9. 记一次vue获取微信用户信息
  10. 基于PHP+MySQL的校园二手旧书回收捐赠系统