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 please 跨浏览器的CSS3产生器
Mar 14 HTML / CSS
css3选择器基本介绍
Dec 15 HTML / CSS
css3的过滤效果简单实例
Aug 03 HTML / CSS
CSS3制作酷炫的条纹背景
Nov 09 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
Feb 08 HTML / CSS
html5的localstorage详解
May 09 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
Jul 10 HTML / CSS
Canvas与图片压缩的示例代码
Nov 28 HTML / CSS
如何用canvas实现在线签名的示例代码
Jul 10 HTML / CSS
AmazeUI 网格的实现示例
Aug 13 HTML / CSS
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
Dec 06 HTML / CSS
前端使用svg图片改色实现示例
Jul 23 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
2006/12/23 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
PHP模块化安装教程
2016/06/01 PHP
PDO::setAttribute讲解
2019/01/29 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
python异常和文件处理机制详解
2016/07/19 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python实现顺序表的简单代码
2018/09/28 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
python实现五子棋程序
2020/04/24 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
高一新生军训感言
2014/03/02 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
社区助残日活动总结
2014/08/29 职场文书
实习生矿工检讨书
2014/10/13 职场文书
家长通知书家长意见
2014/12/30 职场文书
歌剧魅影观后感
2015/06/05 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技