css3实现超炫风车特效


Posted in HTML / CSS onNovember 12, 2014

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

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

先看看静态的效果图:

css3实现超炫风车特效

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

1.画出风车的柱子

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

复制代码
代码如下:

display: block;
height: 0;
width: 4px;
border-width: 0 4px 80px 4px;
border-style: none solid solid;
border-color: transparent transparent white;

效果图

css3实现超炫风车特效

2.画风车的轴

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

width:4px;  
height:4px;  
border:3px #fff solid;  
background:#a5cad6;  
border-radius:5px; 
效果图

css3实现超炫风车特效

3.画风车的叶子

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

height: 0;  
width: 2px;  
border-width: 50px 2px 0px 2px;  
border-style: solid solid none;  
border-color: white transparent transparent ; 
4.定位风车页

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

-webkit-transform-origin:0px 0px;  
-webkit-transform:rotate(60deg); 
效果图

css3实现超炫风车特效

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

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核心,不知道为什么表现那么不一样),后续会尝试解决这个问题。

HTML / CSS 相关文章推荐
巧用CSS3 border实现图片遮罩效果代码
Apr 09 HTML / CSS
css3进阶之less实现星空动画的示例代码
Sep 10 HTML / CSS
HTML5边玩边学(1)画布实现方法
Sep 21 HTML / CSS
检测浏览器是否支持html5视频的代码
Mar 28 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
Jul 15 HTML / CSS
html5画布旋转效果示例
Jan 27 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
May 04 HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
Apr 24 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
Feb 19 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 HTML / CSS
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
Apr 22 HTML / CSS
用CSS3来实现社交分享按钮
Nov 11 #HTML / CSS
推荐一些比较有用的css3新属性
Nov 11 #HTML / CSS
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
Nov 11 #HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
Nov 10 #HTML / CSS
一款纯css3实现的鼠标经过按钮特效教程
Nov 09 #HTML / CSS
一款纯css3实现简单的checkbox复选框和radio单选框
Nov 05 #HTML / CSS
一款CSS3实现多功能下拉菜单(带分享按)的教程
Nov 05 #HTML / CSS
You might like
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
将数组写入txt文件 var_export
2009/04/21 PHP
PHP批量检测并去除文件BOM头代码实例
2014/05/08 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
js form action动态修改方法
2008/11/04 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
使用python爬取B站千万级数据
2018/06/08 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
局域网标准
2016/09/10 面试题
区域总监的岗位职责
2013/11/21 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
军事理论课感想
2015/08/11 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang