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 相关文章推荐
延时重复执行函数 lLoopRun.js
May 08 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
2010年最佳jQuery插件整理
Dec 06 Javascript
jQuery之$(document).ready()使用介绍
Apr 05 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
Apr 30 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
javascript伸缩型菜单实现代码
Nov 16 Javascript
BootStrap Typeahead自动补全插件实例代码
Aug 10 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
微信小程序Redux绑定实例详解
Jun 07 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 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数据库开发知多少
2006/10/09 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
mouse_on_title.js
2006/08/25 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
js实现密码强度检验
2017/01/15 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
Python中捕获键盘的方式详解
2019/03/28 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
python实现超级玛丽游戏
2020/03/18 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
HTML5 解析规则分析
2009/08/14 HTML / CSS
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
工程管理造价应届生求职信
2013/11/13 职场文书
秸秆管理实施方案
2014/03/15 职场文书
安全生产承诺书
2014/03/26 职场文书
致共产党员倡议书
2014/04/16 职场文书
社区服务活动小结
2014/07/08 职场文书
员工培训协议书
2014/09/15 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
2016年元旦主持词
2015/07/06 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
如何利用golang运用mysql数据库
2022/03/13 Golang