JavaScript-永远点不到的小窗口
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>在当前显示区范围内实现点不到的小方块</title>
<style>
div{position:fixed;width:500px;height:500px;
background-color:pink;
}
</style> </head>
<body>
<div id="pop"></div>
<script>
var game={
PSIZE:0,//保存div的大小
MAXTOP:0,//保存最大可以top
MAXLEFT:0,//保存最大可用left
pop:null,//保存主角div
init:function(){
//查找id为pop的div保存在pop属性中
this.pop=document.getElementById("pop");
//获取pop计算后的样式中的width,转为浮点数保存在PSIZE属性中
this.PSIZE=parseFloat(getComputedStyle(this.pop).width);
//计算MAXTOP:文档显示区的高-PSIZE
this.MAXTOP=innerHeight-this.PSIZE;
//计算MAXLEFT:文档显示区的宽-PSIZE
this.MAXLEFT=innerWidth-this.PSIZE;
//debugger;
debugger;
//在0-MAXTOP之间生成随机数,保存在变量rTop中
var rTop=Math.floor(Math.random()*(this.MAXTOP+1));
//在0-MAXLEFT之间生成随机数,保存在变量rLeft中
var rLeft=Math.floor(Math.random()*(this.MAXLEFT+1));
//设置pop的top为rTop
this.pop.style.top=rTop+"px";
//设置pop的left为rLeft
this.pop.style.left=rLeft+"px"; //为pop绑定鼠标进入事件监听,函数为
this.pop.addEventListener("mouseover",
function(e){//获得时间对象e
//反复执行
while(true){
//在0-MAXTOP之间生成随机数,保存在变量rTop中
var rTop=Math.floor(Math.random()*(this.MAXTOP+1));
//在0-MAXLEFT之间生成随机数,保存在变量rLeft中
var rLeft=Math.floor(Math.random()*(this.MAXLEFT+1));
//获得鼠标相对于文档显示区的x坐标
var x= e.clientX;
//获得鼠标相对于文档显示区的y坐标
var y= e.clientY;
//如果!(x>=rLeft&&x<rLeft+PSIZE
// &&y>=rTop&&y<=rTop+PSIZE)
if(!(x>=rLeft&&x<rLeft+this.PSIZE&&y>=rTop&&y<=rTop+this.PSIZE)){
//如果新位置不包含鼠标位置
//设置pop的top为rTop
this.pop.style.top=rTop+"px";
//设置pop的left为rLeft
this.pop.style.left=rLeft+"px";
//退出循序
break;
}
}
}.bind(this)
);
} }
game.init();
</script> </body>
</html>
JavaScript-永远点不到的小窗口的更多相关文章
- javascript的40个网页常用小技巧
下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...
- JS设置弹出小窗口。
经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项.版权信息.警告.欢迎光顾之类的话或者作者想要特别提示的信息.其实制作这 ...
- js制作带有遮罩弹出层实现登录小窗口
要实现的效果如下 点击“登录”按钮后,弹出登录小窗口,并且有遮罩层(这个名词还是百度知道的,以前只知道效果,却不知道名字) 在没有点击“登录”按钮之前登录小窗口不显示,点击“登录”按钮后小窗口显示,并 ...
- IPTV小窗口播放视频 页面焦点无法移动的解决方法
在IPTV高清页面中,小窗口播放视频时,在某些机顶盒上(如高清中兴.高清大亚4904)会出现焦点无法移动现象,即按键无响应.被这个bug困扰了很久,虽然我知道解决方法,但只知其然,不知其所以然.今天做 ...
- Javascript跳转页面和打开新窗口等方法
1.在原来的窗体中直接跳转用onClick="window.location.href='你所要跳转的页面';" 2.在新窗体中打开页面用:onclick="window ...
- 使用【 ajax 】【 bootstrap 】显示出小窗口 详情内容 一些代码意思可以参考下一个文章
使用[ bootstrap ]显示出小窗口 详情内容 显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...
- 警告(alert 消息对话框) 如果你不点击“确定”,就不能对网页做任何操作,这个小窗口就是使用alert实现的
警告(alert 消息对话框) 我们在访问网站的时候,有时会突然弹出一个小窗口,上面写着一段提示信息文字.如果你不点击"确定",就不能对网页做任何操作,这个小窗口就是使用alert ...
- Android Studio 恢复小窗口停靠模式(Docked Mode)
安卓studio在使用小窗口时,如果我们点击取消了窗口的docked mode模式,窗口就会变成,你一旦触发窗口以外的区域,窗口就会龟缩回去.此时,如果你想要恢复回原来的docked mode的话,具 ...
- 黑马程序员_Java基础:多功能小窗口,swing,io,net综合应用
------- android培训.java培训.期待与您交流! ---------- 概念原理的理解,不代表能熟练应用. 如果将多个知识点关联并应用起来,这能加快我们对知识的掌握. 作为一个初学者, ...
- [ucgui] 对话框2——小窗口初始化与消息响应
>_<" 上一节已经说过,创建过得窗口虽然可见,但是它们是以 “空”的形式出现的.这是因为对话框过程函数尚未包含初始化单个元素的代码.小工具的初始值.由它们所引起的行为以及它们之 ...
随机推荐
- uploadify v3.2.1 上传报大量js 类似__flash__addCallback(document.getElementById("SWFUpload_0"), "ReturnUploadStart"); 错误
报__flash__addCallback未定义 报__flash__removeCallback未定义 最后解决方法: uploadify 提供了destroy方法,每次使用完后,清空就可以了. ...
- ubuntu 14.04 重复登录问题解决方法
为了远程登录,装了xubunt后出现重复登录的问题,尝试了多种方法,后来用下面的命令解决了 chown username:username .Xauthority 参考资料:http://askubu ...
- 笔记19-徐 如何在超大型数据库上运行DBCC CHECKDB
) --以上方法TB级数据库的DBA可以考虑试试
- js中原型继承的三种方式
- 转 夕甲甲:孔乙己之 C++ 版
欧欧匹代码的格局,是和别的编程模式不同的:首先要有一个构造函数:基类里只定义了函数的形式,可以随时通过派生增加不同的实现.那些程序员们,每每学会了继承和多态,便可以接一个项目,——这是十年前的事,现在 ...
- Angularjs学习笔记(二)----模块
一.定义 如何将全局定义的控制器模块化 先看下全局定义的控制器 var HelloCtrl=function($scope){ $scope.name='World'; } 模块化后代码 angula ...
- 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log
ADO.NET Entity Framework ToTraceString //输出单条查询 DbContext.Database.Log //这里有详细的日志
- [转载] Android动态加载Dex机制解析
本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...
- java keytool证书工具使用小结
java keytool证书工具使用小结 在Security编程中,有几种典型的密码交换信息文件格式: DER-encoded certificate: .cer, .crt PEM-encod ...
- ffmpeg 音频转换: use ffmpeg convert the audio from stereo to mono without changing the video part
To convert the audio from stereo to mono without changing the video part, you can use FFmpeg: ffmpeg ...