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绘制有活力的链接下划线
Jul 14 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
html5服务器推送_动力节点Java学院整理
Jul 12 HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
Mar 26 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
Feb 19 HTML / CSS
html5将图片转换成base64的实例代码
Sep 21 HTML / CSS
HTML5 Canvas 旋转风车绘制
Aug 18 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
Feb 03 HTML / CSS
HTML5 新增内容和 API详解
Nov 17 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 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教程 预定义变量
2009/10/23 PHP
php目录拷贝实现方法
2015/07/10 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
用python代码做configure文件
2014/07/20 Python
python生成验证码图片代码分享
2016/01/28 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
django celery redis使用具体实践
2019/04/08 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
logging level级别介绍
2020/02/21 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
python实现微信打飞机游戏
2020/03/24 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
一道Delphi面试题
2016/10/28 面试题
工程师岗位职责
2013/11/08 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
争先创优活动总结
2014/08/27 职场文书
财务检查整改报告
2014/11/06 职场文书
2015年计划生育责任书
2015/05/08 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Javascript webpack动态import
2022/04/19 Javascript