CSS3中利用animation属性创建雪花飘落特效


Posted in HTML / CSS onMay 14, 2014

先介绍一下CSS3中的animation的特性吧。

在CSS3中我们可以使用animation属性来创建复杂的动画效果,包括移动,旋转,缩放,倾斜(后几个请参考css3中的transform,scale等属性)等。而这一切,只需要我们创建关键帧(@keyframes),然后将自己想要实现的动作添加进去就可以实现。

比如:

复制代码
代码如下:

@keyframes bgchange{
from {background:red;}
to {background:yellow}
}
div:hover{
animation:bgchange 5s;
}

当鼠标悬停在<div>时,该<div>的背景颜色会在五秒之内从红色变为黄色。

注意:使用animation和@keyframes时不同浏览器需要加上不同的前缀名!

下面代码实现雪花飘落功能:

复制代码
代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>snowing snow</title>
<style>
body{
background: #eee;
}
@keyframes mysnow{
0%{
bottom:100%;
opacity:0;
}
50%{
opacity:1;
transform: rotate(1080deg);
}
100%{
transform: rotate(0deg);
opacity: 0;
bottom:0;
}
}
@-webkit-keyframes mysnow{
0%{
bottom:100%;
opacity:0;
}
50%{
opacity:1;
-webkit-transform: rotate(1080deg);
}
100%{
-webkit-transform: rotate(0deg);
opacity: 0;
bottom:0;
}
}
@-moz-keyframes mysnow{
0%{
bottom:100%;
opacity:0;
}
50%{
opacity:1;
-moz-transform: rotate(1080deg);
}
100%{
-moz-transform: rotate(0deg);
opacity: 0;
bottom:0;
}
}
@-ms-keyframes mysnow{
0%{
bottom:100%;
opacity:0;
}
50%{
opacity:1;
-ms-transform: rotate(1080deg);
}
100%{
-ms-transform: rotate(0deg);
opacity: 0;
bottom:0;
}
}
@-o-keyframes mysnow{
0%{
bottom:100%;
opacity:0;
}
50%{
opacity:1;
-o-transform: rotate(1080deg);
}
100%{
-o-transform: rotate(0deg);
opacity: 0;
bottom:0;
}
}
.roll{
position:absolute;
opacity:0;
animation: mysnow 5s ;
-webkit-animation: mysnow 5s ;
-moz-animation: mysnow 5s ;
-ms-animation: mysnow 5s ;
-o-animation: mysnow 5s ;
height:80px;
}
.div{
position:fixed;
}
</style>
</head>
<body>
<div id="snowzone" >
</div>
</body>
<script>
(function(){
function snow(left,height,src){
var div = document.createElement("div");
var img = document.createElement("img");
div.appendChild(img);
img.className = "roll";
img.src = src;
div.style.left=left+"px";
div.style.height=height+"px";
div.className="div";
document.getElementById("snowzone").appendChild(div);
setTimeout(function(){
document.getElementById("snowzone").removeChild(div);
// console.log(window.innerHeight);
},5000);
}
setInterval(function(){
var left = Math.random()*window.innerWidth;
var height = Math.random()*window.innerHeight;
var src = "s"+Math.floor(Math.random()*2+1)+".png";//两张图片分别为"s1.png"、"s2.png"
snow(left,height,src);
},500);
})();
</script>
</html>

两张雪花图片:
CSS3中利用animation属性创建雪花飘落特效 
最终效果:
CSS3中利用animation属性创建雪花飘落特效
HTML / CSS 相关文章推荐
CSS3 圆角效果
Jul 15 HTML / CSS
CSS3中31种选择器使用方法教程
Dec 05 HTML / CSS
CSS3中使用RGBa来调节透明度的教程
May 09 HTML / CSS
CSS3 :not()选择器实现最后一行li去除某种css样式
Oct 19 HTML / CSS
html5 Canvas画图教程(1)—画图的基本常识
Jan 09 HTML / CSS
html5版canvas自由拼图实例
Oct 15 HTML / CSS
使用phonegap获取设备的一些信息方法
Mar 31 HTML / CSS
教你使用Canvas处理图片的方法
Nov 28 HTML / CSS
关于html字符串正则判断和匹配的具体使用
Dec 12 HTML / CSS
html5实现滑块功能之type=&quot;range&quot;属性
Feb 18 HTML / CSS
总结html5自定义属性有哪些
Apr 01 HTML / CSS
如何在CSS中绘制曲线图形及展示动画
May 24 HTML / CSS
CSS3感应鼠标的背景闪烁和图片缩放动画效果
May 14 #HTML / CSS
css3 自定义字体font-face使用介绍
May 14 #HTML / CSS
CSS3动画animation实现云彩向左滚动
May 09 #HTML / CSS
css3实现可滑动跳转的分页插件示例
May 08 #HTML / CSS
CSS3 Media Queries详细介绍和使用实例
May 08 #HTML / CSS
使用css3实现超炫的loading加载动画效果
May 07 #HTML / CSS
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
May 07 #HTML / CSS
You might like
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
python str与repr的区别
2013/03/23 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
python scipy卷积运算的实现方法
2019/09/16 Python
python实现批量文件重命名
2019/10/31 Python
python Tensor和Array对比分析
2020/01/08 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
毕业生求职信的经典写法
2014/01/31 职场文书
音乐专业自荐信
2014/02/07 职场文书
公证书样本
2014/04/10 职场文书
四年级学生评语大全
2014/04/21 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android