纯CSS3实现给头像加个光芒四射且旋转的背景动画效果


Posted in HTML / CSS onMay 07, 2014

纯CSS3实现给头像加个光芒四射且旋转的背景动画效果

HTML代码

HTML代码结构很简单,跟之前那篇文章使用的相同:

复制代码
代码如下:

<div id="raysDemoHolder">
<a href="/" id="raysLogo">WebHek</a>
<div id="rays"></div>
</div>

最外面的div作为父元素,它的position是relative,有固定的高和宽度,有两个子元素:一个用来放logo,一个用来做光芒效果的容器。

CSS代码

我们这里要用纯CSS来实现,需要使用CSS3的动画技术,这里用到的CSS语法是@keyframes。我们的基本实现原理是用keyframes,从rotate(0deg)旋转到rotate(360deg):

复制代码
代码如下:

/* 用来实现动画的keyframes; 从0度旋转到360度 */
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
/* 实现光线辐射效果 */
#raysDemoHolder {
position: relative;
width: 490px;
height: 490px;
margin: 100px 0 0 200px;
}
#raysLogo {
width: 300px;
height: 233px;
text-indent: -3000px;
background: url(logo.png) 0 0 no-repeat;
display: block;
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
#rays { /* 表现动画效果 */
background: url(rays.png) 0 0 no-repeat;
position: absolute;
top: -100px;
left: -100px;
width: 490px;
height: 490px; </p> <p> /* microsoft ie */
animation-name: spin;
animation-duration: 40000ms; /* 40 seconds */
animation-iteration-count: infinite;
animation-timing-function: linear;
}
#rays:hover {
/* animation-duration: 10000ms;*/
/* 10 seconds - speed it up on hover! */
/* resets the position though! sucks */
}

通过使用animation-timing-function, animation-duration, 和 animation-iteration-count,我们就能实现线性匀速、旋转不停的动画效果!你会发现使用纯CSS制作的动画比用js制作的动画要顺滑的多。

现在我们有了一个问题,早期的Opera浏览器不支持@keyframes语法。幸运的是,我们可以通过其它方法实现这个动画:

复制代码
代码如下:

/* boooo opera */
-o-transition: rotate(3600deg); /* 可用 */

只需要简单的一段代码。而对于IE浏览器,我试图用-ms-transform / -ms-translation在IE9里运行它,但不好用。从IE10才开始支持keyframes语法。

不断的改进自己之前的代码是个好习惯。虽然这个纯CSS实现的动画并不能在IE9里正确的运行,但IE10+,火狐,谷歌浏览器里都工作的非常好。如果必须要支持IE9,你仍然可以使用CSS条件判断语法和JavaScript配合实现js版的效果。

HTML / CSS 相关文章推荐
CSS实现鼠标滑过鼠标点击代码写法
Dec 26 HTML / CSS
CSS3模块的目前的状况分析
Feb 24 HTML / CSS
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
Jul 11 HTML / CSS
CSS3 实现侧边栏展开收起动画
Dec 22 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
May 31 HTML / CSS
纯css实现照片墙3D效果的示例代码
Nov 13 HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
Apr 25 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
Nov 07 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
Mar 04 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
Apr 09 HTML / CSS
纯CSS绘制漂亮的圆形图案效果
May 07 #HTML / CSS
css3制作彩色边线3d立体按钮的示例(css3按钮)
May 06 #HTML / CSS
css3实现顶部社会化分享按钮示例
May 06 #HTML / CSS
css3圆角边框和边框阴影示例
May 05 #HTML / CSS
CSS3 Columns分列式布局方法简介
May 03 #HTML / CSS
css3 2D图片转动样式可以扩充到Js当中
Apr 29 #HTML / CSS
CSS实现的一闪而过的图片闪光效果
Apr 23 #HTML / CSS
You might like
再说下636单管机
2021/03/02 无线电
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
JS hashMap实例详解
2016/05/26 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
python字符串连接方式汇总
2014/08/21 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
解决python读取几千万行的大表内存问题
2018/06/26 Python
python如何实现代码检查
2019/06/28 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
特色冷饮店创业计划书
2014/01/28 职场文书
学校门卫管理制度
2014/01/30 职场文书
校园安全检查制度
2014/02/03 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs