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 11 HTML / CSS
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
Nov 11 HTML / CSS
全方位了解CSS3的Regions扩展
Aug 07 HTML / CSS
CSS3制作hover下划线动画
Mar 27 HTML / CSS
CSS3 @media的基本用法总结
Sep 10 HTML / CSS
CSS3实现渐变背景兼容问题
May 06 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
Oct 17 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
Jan 07 HTML / CSS
HTML5 video 视频标签使用介绍
Feb 03 HTML / CSS
HTML5所有标签汇总及标签意义解释
Mar 12 HTML / CSS
移动端HTML5开发神器之vconsole详解
Dec 15 HTML / CSS
深入理解CSS 中 transform matrix矩阵变换问题
Aug 30 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
python中关于日期时间处理的问答集锦
2013/03/08 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Django框架模板介绍
2019/01/15 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
个人职业生涯规划书1500字
2013/12/31 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
预备党员转正材料
2014/12/19 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
Python中else的三种使用场景
2021/06/16 Python
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL