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中面向对象技术的模拟
Sep 25 Javascript
js tab 选项卡
Apr 26 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
js如何获取file控件的完整路径具体实现代码
May 15 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 Javascript
react-router 路由切换动画的实现示例
Dec 03 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
Jul 27 Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 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中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
DOM事件探秘篇
2017/02/15 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
Python函数学习笔记
2008/10/07 Python
python列表去重的二种方法
2014/02/14 Python
python通过文件头判断文件类型
2015/10/30 Python
Python中join函数简单代码示例
2018/01/09 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
社区交通安全实施方案
2014/03/22 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
会计求职自荐信
2014/06/20 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
电影开国大典观后感
2015/06/04 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python