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 滤镜 webkit-filter详细介绍及使用方法
Dec 27 HTML / CSS
CSS3不透明度实例讲解
Apr 26 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
Apr 26 HTML / CSS
css3 clip实现圆环进度条的示例代码
Feb 07 HTML / CSS
HTML5边玩边学(1)画布实现方法
Sep 21 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
Mar 13 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
Jan 29 HTML / CSS
HTML5中的Web Notification桌面通知功能的实现方法
Jul 29 HTML / CSS
Canvas多边形绘制的实现方法
Aug 05 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
Sep 05 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
Oct 08 HTML / CSS
使用HTML5加载音频和视频的实现代码
Nov 30 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
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
domReady的实现案例
2016/11/23 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
canvas的神奇用法
2017/02/03 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python用字典构建多级菜单功能
2019/07/11 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
python 绘制正态曲线的示例
2020/09/24 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
高校学生干部的自我评价分享
2013/11/04 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
学生安全教育材料
2014/02/14 职场文书
活动总结怎么写
2014/04/28 职场文书
核心价值观演讲稿
2014/05/13 职场文书
吴仁宝观后感
2015/06/09 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
python语言中pandas字符串分割str.split()函数
2022/08/05 Python