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中的5个有趣的新技术
Apr 02 HTML / CSS
使用简单的CSS3属性实现炫酷读者墙效果
Jan 08 HTML / CSS
一款基于css3麻将筛子3D翻转特效的实例教程
Dec 31 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
Sep 14 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
Dec 20 HTML / CSS
CSS3下的渐变文字效果实现示例
Mar 02 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
May 07 HTML / CSS
浅析HTML5中header标签的用法
Jun 24 HTML / CSS
HTML5 canvas基本绘图之图形组合
Jun 27 HTML / CSS
前端实现打印图像功能
Aug 27 HTML / CSS
CSS3 实现的图片悬停的切换按钮
Apr 13 HTML / CSS
css中:last-child不生效的解决方法
Aug 05 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截取中文字符串不乱码的方法
2013/12/25 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
javascript Excel操作知识点
2009/04/24 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
Python简单实现控制电脑的方法
2018/01/22 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
Django实现发送邮件功能
2019/07/18 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
Java程序员常见面试题
2015/07/16 面试题
保护环境倡议书范文
2014/05/13 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
幼儿园见习报告
2014/10/30 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
西安导游词
2015/02/12 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
React四级菜单的实现
2022/04/08 Javascript
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js