二、 整个浏览器可视区域的碰壁反弹

margin:0;

padding:0;

}

#bounce{

height: 50px;

width: 50px;

border-radius: 50%;/*background: yellow;*/position: absolute;

left:0;

top:0;

}

//获取元素

var container = gt("con");//小球所在容器

var bounce = gt("bounce");//反弹的小球

//设置小球随机背景颜色

bounce.style.background =ranColor();//获取小球在可视区域的滚动范围

//获取可视区域的宽高(不含任务栏)

var aWidth = document.documentElement.clientWidth || document.body.clientWidth ||window.innerWidth;var aHeight = document.documentElement.clientHeight || document.body.clientHeight ||window.innerHeight;

console.log("可视区域不含任务栏的范围:w:"+aWidth + "===h:"+aHeight);//减去小球的宽高即为活动范围,此处不加单位,方便moveDistance()方法内if条件判断

var scrollMaxX = (aWidth -bounce.offsetWidth);var scrollMaxY = (aHeight -bounce.offsetHeight);

console.log("小球可滚动的范围:x:"+scrollMaxX+"===y:"+scrollMaxY);//设置小球滚动,每隔几秒滚动一段距离//var timer = setInterval(function(){alert("haha")},1000);

var timer = setInterval(moveDistance,30);//设置小球移动

var stepX = 5;var stepY = 5;functionmoveDistance(){//console.log("进入moveDistance")

var currentLeft = bounce.offsetLeft +stepX;var currentTop = bounce.offsetTop +stepY;//判断小球是否滚动到最大的宽度、高度,如果滚动到最大宽度、高度,设置反弹滚动 *(-1)

if(currentLeft >=scrollMaxX){

currentLeft=scrollMaxX;

stepX*= -1;

bounce.style.background=ranColor();

}else if(currentLeft <= 0){

currentLeft= 0;

stepX*= -1;

bounce.style.background=ranColor();

}if(currentTop >=scrollMaxY){

currentTop=scrollMaxY;

stepY*= -1;

bounce.style.background=ranColor();

}else if(currentTop <= 0){

currentTop= 0;

stepY*= -1;

bounce.style.background=ranColor();

}

bounce.style.left= currentLeft + 'px';

bounce.style.top= currentTop + 'px';

console.log(bounce.style.left);//console.log("离开moveDistance");

}//设置窗口改变监听器;onresize 事件会在窗口或框架被调整大小时发生。

//当浏览器窗口发生改变时,重新获取浏览器当前可视化窗口的尺寸,重新计算小球能移动的最大宽度和高度

window.onresize = function(){

aWidth= document.documentElement.clientWidth || document.body.clientWidth ||window.innerWidth;

aHeight= document.documentElement.clientHeight || document.body.clientHeight ||window.innerHeight;

scrollMaxX= (aWidth -bounce.offsetWidth);

scrollMaxY= (aHeight -bounce.offsetHeight);

}//设置小球随机颜色方法

functionranColor(){var red = parseInt(Math.random()*255);var green = parseInt(Math.random()*255);var blue = parseInt(Math.random()*255);return "RGB(" + red + "," + green + "," + blue + ")";

}//设置通过id获取元素的函数

functiongt(e){returndocument.getElementById(e);

}

小球碰壁反弹加分_js中小球碰壁反弹相关推荐

  1. (NO.00004)iOS实现打砖块游戏(八):游戏中小球与砖块的碰撞

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在回到GameScene.m中,我们所有的碰撞处理就放在该类中 ...

  2. java 小球抛物线_vue 2.0 购物车小球抛物线

    备注:此项目模仿 饿了吗.我用的是最新的Vue, 视频上的一些写法已经被废弃了. 布局代码 v-for="ball in balls" @before-enter="be ...

  3. html5跟随手指的小球,Android自定义圆形View实现小球跟随手指移动效果(详细介绍)...

    一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动. 实现的思路: 1)自定义View,在onDraw中画圆作为小球: 2)重写自定义View的onTouchEvent方法,记录触屏坐标,用 ...

  4. 3dmax:3dmax动画栏之关键帧动画经典案例(弹跳小球、实活力小球(上升慢下降快)、小球跳墙、跳动越来越低的小球实例、空间跳动的小球、球跳阶梯)之详细攻略

    3dmax:3dmax动画栏之关键帧动画经典案例(弹跳小球.实活力小球(上升慢下降快).小球跳墙.跳动越来越低的小球实例.空间跳动的小球.球跳阶梯)之详细攻略 目录

  5. 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Windows篇(゚益゚メ) 渗透测试

    文章目录 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC mshta.exe利用 msf利用模块 方法一(msfconsole) 方法二(msfvenom) Cobal ...

  6. 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Linux篇(゚益゚メ) 渗透测试

    文章目录 相关博客 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC Telnet反弹 正向shell 反向shell OpenSSL Curl 相关博客 Linux信息 ...

  7. 常见的反弹shell的方法以及对反弹shell的解释

    文章目录 一.什么是反弹shell,以及对反弹shell作用原理的解析: 3.反弹shell的本质 linux文件描述符 重定向 输入重定向 输出重定向 标准输出与标准错误输出重定向 文件描述符的复制 ...

  8. 小球碰壁反弹加分_用Java实现小球碰壁反弹的简单实例(算法十分简单)

    用Java实现小球碰壁反弹的简单实例(算法十分简单) 核心代码如下: if(addX){ x+=3; }else{ x-=3; } if(addY){ y+=6; }else{ y-=6; } if( ...

  9. 小球碰壁反弹加分_Javascript:Canvas的小球碰壁反弹

    (萌新),我今天在网上看了看如何在Canvas画布上做出小球碰壁反弹的效果,然后自己试做一下,感觉良好,不知道还有什么需要改良. 首先我的思路是: 1.在body创建一个canvas标签,设置宽:50 ...

最新文章

  1. prolog_如何通过观看权力的游戏学习Prolog
  2. 双系统如何删除Linux
  3. pymongo TypeError
  4. SVG动画.animateTransform
  5. linux服务器 32核,Intel换成AMD 32核锐龙 Linux之父体验很好
  6. 考拉海购全面云原生迁移之路
  7. c语言程序滞留,c语言有个可以使程序延时的语句是什么?
  8. linux bash 历史记录,Linux Bash History 命令历史记录
  9. 微信公众平台开发(120) 微信支付报关接口
  10. Bootstrap3 过渡插件
  11. OC正则表达式的使用
  12. 数据治理的好处有哪些
  13. 最好用16进制工具wxHexEditor
  14. 人工智能学习思维导图
  15. 三角形外接圆圆心 算法 删改版
  16. 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)
  17. You-Get的安装与使用
  18. 一小伙使用 python爬虫来算命?
  19. 数字图像处理王慧琴课后答案_清华大学出版社-图书详情-《数字图像处理(第3版)》...
  20. 温州大学c语言期末试卷,2016年温州大学物理与电子信息工程学院综合卷之C语言程序设计复试笔试最后押题五套卷...

热门文章

  1. PrimeVue - 基于 Vue 3 的免费开源、定制性强的前端 UI 组件库
  2. 什么是企业邮箱星标联系人?
  3. android ui界面
  4. Rasbian系统 树莓派Python环境搭建
  5. 2008521美赛E题
  6. Collection集合
  7. chromebook刷机_某些Chromebook无法获得Linux应用。 这是您可以做的
  8. python脚本编辑器 v2ex_python3 模拟登录v2ex实例讲解
  9. ERD Online 4.0.11 在线数据库建模、元数据协作平台(免费、私有部署)
  10. mysql行锁/表锁