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 XMLHttpRequest对象全面剖析
Apr 24 Javascript
jquery调用wcf并展示出数据的方法
Jul 07 Javascript
探讨javascript是不是面向对象的语言
Nov 21 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
Jun 15 Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 Javascript
巧用jQuery选择器提高写表单效率的方法
Aug 19 Javascript
JQuery实现DIV其他动画效果的简单实例
Sep 18 Javascript
微信小程序报错:this.setData is not a function的解决办法
Sep 27 Javascript
详解JavaScript 中 if / if...else...替换方式
Jul 15 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
Nov 13 Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 Javascript
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
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
php检测mysql表是否存在的方法小结
2017/07/20 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
PHP实现简单的计算器
2020/08/28 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
继续学习javascript闭包
2015/12/03 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
2017/01/08 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
原生js获取left值和top值的三种方法
2017/08/02 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
解决pandas 作图无法显示中文的问题
2018/05/24 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
python进行文件对比的方法
2018/12/24 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
股东合作协议书
2014/09/12 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
Pandas数据结构之Series的使用
2022/03/31 Python