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实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
js实时获取并显示当前时间的方法
Jul 31 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
Nov 09 Javascript
ReactJs快速入门教程(精华版)
Nov 28 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
Jan 10 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
了解ESlint和其相关操作小结
May 21 Javascript
JavaScript根据json生成html表格的示例代码
Oct 24 Javascript
JS实现的合并两个有序链表算法示例
Feb 25 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 18 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
C# Assembly类访问程序集信息
2009/06/13 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
2015/04/08 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
Python Socket编程入门教程
2014/07/11 Python
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
python根据出生日期获得年龄的方法
2015/03/31 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
深入浅析python 中的匿名函数
2018/05/21 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
python将时分秒转换成秒的实例
2019/12/07 Python
护理专科毕业推荐信
2013/11/10 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
护士自荐信范文
2015/03/25 职场文书
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js