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写的点击上下滚动的小例子
Aug 27 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
js中生成map对象的方法
Jan 09 Javascript
css结合js制作下拉菜单示例代码
Feb 27 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
May 14 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
Dec 23 Javascript
Javascript 字符串模板的简单实现
Feb 13 Javascript
文件上传,iframe跨域数据提交的实现
Nov 18 Javascript
基于Vue如何封装分页组件
Dec 16 Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
Sep 10 Javascript
使用vue-cli3+typescript的项目模板创建工程的教程
Feb 28 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根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
js 幻灯片的实现
2011/12/06 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
Python实现新浪博客备份的方法
2016/04/27 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
解决python replace函数替换无效问题
2020/01/18 Python
python opencv 检测移动物体并截图保存实例
2020/03/10 Python
python中什么是面向对象
2020/06/11 Python
python 实现两个npy档案合并
2020/07/01 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
Android面试宝典
2013/08/06 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
档案接收函
2014/01/13 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
如何写早恋检讨书
2014/09/10 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL