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轻松实现清新 Loading 效果的简单实例
Jun 06 HTML / CSS
详解CSS3 用border写 空心三角箭头 (两种写法)
Sep 29 HTML / CSS
css3.0 图形构成实例练习二
Mar 19 HTML / CSS
你应该知道的30个css选择器
Mar 19 HTML / CSS
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
May 07 HTML / CSS
CSS3 毛玻璃效果
Aug 14 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
Jan 31 HTML / CSS
HTML页面中添加Canvas标签示例
Jan 01 HTML / CSS
Html5实现文件异步上传功能
May 19 HTML / CSS
鼠标滚轮事件和Mac触控板双指事件
Dec 23 HTML / CSS
AmazeUI导航的示例代码
Aug 14 HTML / CSS
深入理解margin塌陷和margin合并的解决方案
Jun 26 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程序实现支持页面后退的两种方法
2008/06/30 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
学习ExtJS Window常用方法
2009/10/07 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
python爬虫爬取某站上海租房图片
2018/02/04 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python小程序实现刷票功能详解
2019/07/17 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
公司同意接收函
2014/01/13 职场文书
高校教师岗位职责
2014/03/18 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
检查机关党的群众路线个人整改措施
2014/10/04 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS