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 相关文章推荐
网页布局中CSS样式无效的十个重要原因详解
Aug 10 HTML / CSS
CSS3 网页下拉菜单代码解释 中文翻译
Feb 27 HTML / CSS
CSS3 选择器 伪类选择器介绍
Jan 21 HTML / CSS
纯CSS3实现带动画效果导航菜单无需js
Sep 27 HTML / CSS
一款纯css3实现的鼠标经过按钮特效教程
Nov 09 HTML / CSS
一款纯css3实现的竖形二级导航的实例教程
Dec 11 HTML / CSS
使用CSS3来制作消息提醒框
Jul 12 HTML / CSS
详解CSS3+JS完美实现放大镜模式
Dec 03 HTML / CSS
canvas绘制表情包的示例代码
Jul 09 HTML / CSS
详解Html5中video标签那些属性和方法
Jul 01 HTML / CSS
Html5自定义字体解决方法
Oct 09 HTML / CSS
HTML5 body设置自适应全屏
May 07 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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
PHP 文件上传全攻略
2010/04/28 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
javascript中关于执行环境的杂谈
2011/08/14 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
小程序实现多选框功能
2018/10/30 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python的标准模块包json详解
2017/03/13 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
办公室年终个人自我评价
2013/10/28 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
企业指导教师评语
2014/04/28 职场文书
酒店开业策划方案
2014/06/02 职场文书
销售2014年度工作总结
2014/12/08 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
go goth封装第三方认证库示例详解
2022/08/14 Golang