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 相关文章推荐
Javascript miscellanea -display data real time, using window.status
Jan 09 Javascript
js打印纸函数代码(递归)
Jun 18 Javascript
基于jquery的鼠标拖动效果代码
May 30 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
Oct 11 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
JavaScript 表单处理实现代码
Apr 13 Javascript
js中toString()和String()区别详解
Mar 23 Javascript
原生JS实现小小的音乐播放器
Oct 16 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
May 22 Javascript
layui实现数据表格隐藏列的示例
Oct 25 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 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
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
python动态加载包的方法小结
2016/04/18 Python
python tornado微信开发入门代码
2018/08/24 Python
python模糊图片过滤的方法
2018/12/14 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
Python内存管理实例分析
2019/07/10 Python
Python循环结构的应用场景详解
2019/07/11 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
市三好学生主要事迹
2014/01/28 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
公司门卫岗位职责
2015/04/13 职场文书
学校会议通知范文
2015/04/15 职场文书
借条格式范本
2015/05/25 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
法制教育主题班会
2015/08/13 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript
python获取对象信息的实例详解
2021/07/07 Python
索尼ICF-36收音机评测
2022/04/30 无线电
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js