JS实现模拟风力的雪花飘落效果


Posted in Javascript onMay 13, 2015

本文实例讲述了JS实现模拟风力的雪花飘落效果。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>雪花飘啊飘</title>
</head>
<style>
* {margin:0; padding:0; vertical-align:top;}
.xue{position:absolute;color:#fff;}
</style>
<body>
<div id="bbb" 
style="position:absolute;top:0px;right:0px;width:400px;border:1px #000 solid;background:#fff;z-index:9;height:30px;">
</div>
<div id="box" 
style="height:600px;position:relative;border:1px red solid;background:#000;overflow:hidden;">
</div>
<div 
style="position:absolute;top:0px;right:400px;border:1px #000 solid;background:#fff;width:400px;height:30px;z-index:5;">
<input id="wind_id" value="10" />级风
<input id="wind_button" type=button value="雪花飘啊飘飘啊飘" />
</div>
<script>
var box = document.getElementById("box");
var i= 0,c,d,wind_time;
var all = 0,other = 0,wind=0;
box.style.width = '1000px';
document.getElementById("wind_button").onclick = function(){
clearTimeout(wind_time);wind = 0;
wind = parseInt(document.getElementById("wind_id").value);
wind_run(wind);
}
function gogo(){
var a = document.createElement("div");
a.innerHTML = '.';
a.id = "xue" + i;
a.className = "xue";
a.style.top = parseInt(box.style.height) * (Math.random() > 0.3 ? Math.random() : 0) + 'px';
if(wind != 0){var ss = Math.random() > Math.abs(wind*0.025) ? Math.random() : (wind > 0 ? 0 : 1) ;}else{var ss = Math.random()}
a.style.left = parseInt(box.style.width) * ss + 'px';
box.appendChild(a);
godown(a.id,a.id,8*Math.random());
i++;
all++;
var x = 100 * Math.random()* Math.random();
setTimeout('gogo()',x);
};
function removeElement(_element){//移除标签的函数
var _parentElement = _element.parentNode;
if(_parentElement){
_parentElement.removeChild(_element);
};
};
function godown(a,e,speed){
if(speed < 3){speed = 3}
var a1 =document.getElementById(a);
a1.style.top = parseInt(a1.style.top) + speed +'px';
if(parseInt(a1.style.top) < parseInt(box.style.height)){e = setTimeout("godown(\""+a+"\",\""+e+"\","+speed+")",20)}
else{
clearTimeout(e);
removeElement(a1);
speed=null;
other++;
document.getElementById('bbb').innerHTML = "区域内还有"+(all-other)+"个雪花点."
};
};
function wind_run(wind){
var a = document.getElementById("box").getElementsByTagName('div');
for(var i = 0;i<a.length;i++){
a[i].style.left = parseInt(a[i].style.left) + wind +'px';
};
if(Math.abs(wind) > 0.1){wind_time = setTimeout("wind_run("+wind+")",20)}
else{clearTimeout(wind_time);wind = 0;};
};
gogo();
</script>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery 利用show和hidden实现级联菜单示例代码
Aug 09 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
javascript  数组排序与对象排序的实例
Jul 17 Javascript
js中时间格式化的几种方法
Jul 22 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
vue iview多张图片大图预览、缩放翻转
Jul 13 Javascript
js中关于Blob对象的介绍与使用
Nov 29 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
JavaScript实现鼠标点击后层展开效果的方法
May 13 #Javascript
浅谈javascript中的闭包
May 13 #Javascript
jQuery构造函数init参数分析续
May 13 #Javascript
jQuery构造函数init参数分析
May 13 #Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
May 12 #Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
May 12 #Javascript
js实现带按钮的上下滚动效果
May 12 #Javascript
You might like
PHP调用三种数据库的方法(3)
2006/10/09 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
浅析return false的正确使用
2013/11/04 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
js实现网页收藏功能
2015/12/17 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
django启动uwsgi报错的解决方法
2018/04/08 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python中的字符串内部换行方法
2018/07/19 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
Linux机考试题
2015/07/17 面试题
商务英语专业毕业生自荐信
2013/11/05 职场文书
新闻专业推荐信范文
2013/11/20 职场文书
高二政治教学反思
2014/02/01 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
电焊工岗位职责
2014/03/06 职场文书
仓库文员岗位职责
2014/04/06 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
食品安全演讲稿
2014/09/01 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书