js由下向上不断上升冒气泡效果实例


Posted in Javascript onMay 07, 2015

本文实例讲述了js由下向上不断上升冒气泡效果的方法。分享给大家供大家参考。具体实现方法如下:

<html>
<head>
<title>JS实现气泡从水中急速上升效果</title>
<style type="text/css">
body {
cursor:crosshair;margin:0; padding:0;
position:absolute; overflow:hidden;
background:#FFF; left:0; top:0;
width:100%; height:100%;
}
</style>
<script type="text/javascript">
var object = new Array();
nbfm  = 60;
var xm = 0;
var ym = 9999;
var nx = 0;
var ny = 0;
function movbulb(){
 with (this) {
 if(ec < 20){
  if(Math.abs(x0 - xm) < 100 && Math.abs(y0 - ym) < 100){
  xx = (xm - x0) / 8;
  yy = (ym - y0) / 8;
  ec++;
  }
 }
 xx *= 0.99;
 yy *= 0.99;
 x0 = Math.round(x0 + Math.cos(y0 / 15) * p) + xx;
 y0+= yy - v;
 if(y0 < -h * 2 || x0 < -w * 2 || x0 > nx + w * 2){
  y0 = ny + N + h * 2;
  x0 = nx/2-100 + Math.random() * 100;
  ec = 0;
 }
 obj.style.top = y0 - h;
 obj.style.left = x0 - w;
 }
}
function CObj(N,img,w,h){
 this.obj = document.createElement("img");
 this.obj.src = img.src;
 this.obj.style.position = "absolute";
 this.obj.style.left = -1000;
 document.body.appendChild(this.obj);
 this.N = N;
 this.x0 = 0;
 this.y0 = -1000;
 this.v = 1 + Math.round((80 / h) * Math.random());
 this.p = 1 + Math.round((w / 8) * Math.random());
 this.xx = 0;
 this.yy = 0;
 this.ec = 0;
 this.w = w;
 this.h = h;
 this.movbulb = movbulb;
}
function resize(){
 nx = document.body.offsetWidth;
 ny = document.body.offsetHeight;
}
onresize = resize;
document.onmousemove = function(e){
 if (window.event) e = window.event;
 xm = document.body.scrollLeft+(e.x || e.clientX);
 ym = document.body.scrollTop+(e.y || e.clientY);
}
function run(){
 for(i in object)object[i].movbulb();
 setTimeout(run, 16);
}
onload = function() {
 PIC = document.getElementById("bubbles").getElementsByTagName("img");
 resize();
 for(nbf=0;nbf<nbfm;nbf++){
 sf = PIC[nbf%PIC.length];
 object[nbf] = new CObj(nbf,sf,sf.width/2,sf.height/2);
 }
 run();
}
</script>
</head>
<body>
<div id="bubbles" style="visibility:hidden">
<img src="http://bbs.blueidea.com/static/image/smiley/blueidea/smile.gif">
<img src="http://bbs.blueidea.com/static/image/smiley/blueidea/biggrin.gif">
<img src="http://bbs.blueidea.com/static/image/smiley/blueidea/eek.gif">
<img src="http://bbs.blueidea.com/static/image/smiley/blueidea/rolleyes.gif">
</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
保证JavaScript和Asp、Php等后端程序间传值编码统一
Apr 17 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 Javascript
jquery 操作DOM案例代码分享
Apr 05 Javascript
js闭包的用途详解
Nov 09 Javascript
JavaScript中的console.time()函数详细介绍
Dec 29 Javascript
原生JS和JQuery动态添加、删除表格行的方法
May 28 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
May 31 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
微信小程序加载更多 点击查看更多
Nov 29 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
js实现列表按字母排序
Aug 11 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 #Javascript
js显示文本框提示文字的方法
May 07 #Javascript
js实现模拟计算器退格键删除文字效果的方法
May 07 #Javascript
浅谈document.write()输出样式
May 07 #Javascript
js库Modernizr的介绍和使用
May 07 #Javascript
详谈LABJS按需动态加载js文件
May 07 #Javascript
JavaScript改变CSS样式的方法汇总
May 07 #Javascript
You might like
一个分页的论坛
2006/10/09 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
php格式文件打开的四种方法
2018/02/24 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python调用支付宝支付接口流程
2019/08/15 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
小学评语大全
2014/04/22 职场文书
应届生自荐书
2014/06/23 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
法定代表人资格证明书
2015/06/18 职场文书
56句经典英文座右铭
2019/08/09 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫