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圆角效果完整代码
Oct 10 HTML / CSS
CSS3制作Dropdown下拉菜单的方法
Jul 18 HTML / CSS
CSS3的RGBA中关于整数和百分比值的转换
Aug 04 HTML / CSS
CSS3实现鼠标悬停显示扩展内容
Aug 24 HTML / CSS
css3 盒模型以及box-sizing属性全面了解
Sep 20 HTML / CSS
CSS3 清除浮动的方法示例
Jun 01 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
使用HTML5做个画图板的方法介绍
May 03 HTML / CSS
有关HTML5页面在iPhoneX适配问题
Nov 13 HTML / CSS
HTML5视频播放插件 video.js介绍
Sep 29 HTML / CSS
纯CSS实现酷炫的霓虹灯效果
Apr 13 HTML / CSS
html中相对位置与绝对位置的具体使用
May 15 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批量删除数据
2007/01/18 PHP
php扩展ZF――Validate扩展
2008/01/10 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
php实现三级级联下拉框
2016/04/17 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
Laravel实现表单提交
2017/05/07 PHP
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python多线程http压力测试脚本
2019/06/25 Python
Python中print函数简单使用总结
2019/08/05 Python
python实现按关键字筛选日志文件
2019/12/24 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
高级销售员求职信
2013/10/25 职场文书
找工作最新求职信
2013/12/22 职场文书
单位绩效考核方案
2014/05/11 职场文书
2015年妇女工作总结
2015/05/14 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python