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 相关文章推荐
使用before和:after伪类制作css3圆形按钮
Apr 08 HTML / CSS
使用CSS3实现一个3D相册效果实例
Dec 03 HTML / CSS
CSS3 不定高宽垂直水平居中的几种方式
Mar 26 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
Jul 13 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
Jan 27 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
Apr 23 HTML / CSS
极简的HTML5模版
Jul 09 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
Jun 27 HTML / CSS
从零实现一个自定义html5播放器的示例代码
Aug 01 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
Dec 29 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
Sep 10 HTML / CSS
HTML5来实现本地文件读取和写入的实现方法
May 25 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/10/09 PHP
ajax缓存问题解决途径
2006/12/06 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
pytorch 修改预训练model实例
2020/01/18 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
清明节网上祭英烈活动总结
2014/04/30 职场文书
商务经理岗位职责
2014/07/30 职场文书
庆祝国庆节标语
2014/10/09 职场文书
java开发双人五子棋游戏
2022/05/06 Java/Android