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 相关文章推荐
初学js插入节点appendChild insertBefore使用方法
Jul 04 Javascript
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
jcrop基本参数一览
Jul 16 Javascript
JS下拉缓冲菜单示例代码
Aug 30 Javascript
jQuery源码解读之hasClass()方法分析
Feb 20 Javascript
javascript模拟C#格式化字符串
Aug 26 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
JavaScript 自定义事件之我见
Sep 25 Javascript
基于vue2.0实现简单轮播图
Nov 27 Javascript
解决iView中时间控件选择的时间总是少一天的问题
Mar 15 Javascript
微信小程序Page中data数据操作和函数调用方法
May 08 Javascript
vant中的toast轻提示实现代码
Nov 04 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
PHP 定界符 使用技巧
2009/06/14 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
兼容ie和firefox js关闭代码
2008/12/11 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
nuxt.js 缓存实践
2018/06/25 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
办理居住证介绍信
2014/01/15 职场文书
心理健康课教学反思
2014/02/13 职场文书
初中学校军训方案
2014/05/09 职场文书
社区科普工作方案
2014/06/03 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
男方婚礼答谢词
2015/01/20 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis