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教程(1):什么是CSS3
Apr 02 HTML / CSS
IE浏览器单独写CSS样式的几种方法
Oct 14 HTML / CSS
纯CSS3制作漂亮带动画效果的主机价格表
Apr 25 HTML / CSS
使用CSS3实现SVG路径描边动画效果入门教程
Oct 21 HTML / CSS
HTML5 canvas基本绘图之绘制线段
Jun 27 HTML / CSS
canvas三角函数模拟水波效果的示例代码
Jul 03 HTML / CSS
X/HTML5 和 XHTML2
Oct 17 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
HTML5新特性之语义化标签
Oct 31 HTML / CSS
处理textarea中的换行和空格
Dec 12 HTML / CSS
CSS3通过var()和calc()函数实现动画特效
Mar 30 HTML / CSS
web前端之css水平居中代码解析
May 20 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中上传多个文件的表单设计例子
2014/11/19 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
js实现简单计算器
2015/11/22 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
python3.0 字典key排序
2008/12/24 Python
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python深入学习之闭包
2014/08/31 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python基于opencv检测程序运行效率
2019/12/28 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
单位工作证明
2014/10/07 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android