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 相关文章推荐
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 Javascript
javascript设置连续两次点击按钮时间间隔的方法
Oct 28 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
详解Js中的模块化是如何实现的
Oct 18 Javascript
JavaScript学习笔记之DOM操作实例分析
Jan 08 Javascript
vue+mock.js实现前后端分离
Jul 24 Javascript
vue递归组件实战之简单树形控件实例代码
Aug 27 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
处理单名多值表单的详解
2013/06/08 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
Mootools 1.2教程 事件处理
2009/09/15 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
Javascript window对象详解
2014/11/12 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
Python切片操作去除字符串首尾的空格
2019/04/22 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python的数学算法函数及公式用法
2020/11/18 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
在职研究生自我鉴定
2013/10/16 职场文书
销售总监岗位职责
2014/01/04 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
甘南现象心得体会
2014/09/11 职场文书
女生抽烟检讨书
2014/10/05 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
预备党员考察意见范文
2015/06/01 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏