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+DIV实现漂亮的动画彩色标签
Jun 16 HTML / CSS
浅析两列自适应布局的3种思路
May 03 HTML / CSS
CSS3实例分享--超炫checkbox复选框和radio单选框
Sep 01 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
Mar 29 HTML / CSS
CSS3实现王者匹配时的粒子动画效果
Apr 12 HTML / CSS
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
Jan 30 HTML / CSS
HTML5 embed标签定义和用法详解
May 09 HTML / CSS
一款利用html5和css3动画排列人物头像的实例演示
Dec 05 HTML / CSS
Html5 audio标签样式的修改
Jan 28 HTML / CSS
解析HTML5中的新功能本地存储localStorage
Mar 01 HTML / CSS
使用Html5中的cavas画一面国旗
Sep 25 HTML / CSS
CSS+HTML 实现顶部导航栏功能
Aug 30 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
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
解析php类的注册与自动加载
2013/07/05 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
Python中的高级函数map/reduce使用实例
2015/04/13 Python
python如何修改装饰器中参数
2018/03/20 Python
python模拟表单提交登录图书馆
2018/04/27 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
商务日语专业的自荐信
2014/05/23 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
领导干部民主生活会自我剖析材料范文
2014/09/20 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
时尚女魔头观后感
2015/06/04 职场文书
三八节祝酒词
2015/08/11 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python