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 相关文章推荐
使用apply方法处理数组的三个技巧[译]
Sep 20 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
Sep 12 Javascript
Angularjs 滚动加载更多数据
Mar 17 Javascript
原生JS取代一些JQuery方法的简单实现
Sep 20 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
Mar 14 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 13 Javascript
vue2.0 watch里面的 deep和immediate用法说明
Oct 30 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
解析php常用image图像函数集
2013/06/24 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
python处理document文档保留原样式
2019/09/23 Python
基于python实现地址和经纬度转换
2020/05/19 Python
python调用私有属性的方法总结
2020/07/24 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
社会实践先进工作者事迹材料
2014/05/06 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
比赛主持人开场白
2015/05/29 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
PHP新手指南
2021/04/01 PHP
OpenCV全景图像拼接的实现示例
2021/06/05 Python
MySQL分区路径子分区再分区
2022/04/13 MySQL