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 相关文章推荐
js操作textarea 常用方法总结
Dec 03 Javascript
使用JS读秒使用示例
Sep 21 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
Aug 25 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
javascript每日必学之多态
Feb 23 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
AngularJS封装$http.post()实例详解
May 06 Javascript
原生JS实现不断变化的标签
May 22 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
详解Chart.js轻量级图表库的使用经验
May 22 Javascript
利用js实现简易红绿灯
Oct 15 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
简单介绍Python中的RSS处理
2015/04/13 Python
Python3 处理JSON的实例详解
2017/10/29 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
PHP如何与mysql建立链接
2013/05/05 面试题
如何现实servlet的单线程模式
2014/08/05 面试题
医学专业个人求职自荐信格式
2013/09/23 职场文书
办公室经理岗位职责
2014/01/01 职场文书
即兴演讲稿
2014/01/04 职场文书
初一英语教学反思
2014/01/11 职场文书
安踏广告词改编版
2014/03/21 职场文书
财务情况说明书范文
2014/05/06 职场文书
公司人事任命通知
2015/04/20 职场文书
审查起诉阶段律师意见书
2015/05/19 职场文书
高一军训口号
2015/12/25 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL