Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,如何判断对象何时到达可见窗口的末尾?_Javascript - Fatal编程技术网

在JavaScript中,如何判断对象何时到达可见窗口的末尾?

在JavaScript中,如何判断对象何时到达可见窗口的末尾?,javascript,Javascript,我正在做一个游戏。我有一个15000x15000像素的竞技场。显然,没有一个现有的屏幕有这么多像素,所以我让用户使用箭头键滚动来更改窗口。我希望能够检测我的对象this.localTank何时到达可视窗口的边缘,以便根据需要滚动窗口。如何实现这一点?您可以使用元素.getBoundingClientRect().right属性,窗口.innerWidth 正文{ 宽度:15000px; } #坦克{ 显示:块; 位置:相对位置; 宽度:50px; 高度:50px; 左:0px; } 坦克 v

我正在做一个游戏。我有一个15000x15000像素的竞技场。显然,没有一个现有的屏幕有这么多像素,所以我让用户使用箭头键滚动来更改窗口。我希望能够检测我的对象this.localTank何时到达可视窗口的边缘,以便根据需要滚动窗口。如何实现这一点?

您可以使用
元素.getBoundingClientRect()
.right
属性,
窗口.innerWidth

正文{
宽度:15000px;
}
#坦克{
显示:块;
位置:相对位置;
宽度:50px;
高度:50px;
左:0px;
}

坦克
var tank=document.getElementById(“tank”);
函数getTankPosition(){
var left=window.getComputedStyle(tank).left;
tank.style.left=parseInt(左)+50+“px”;
if(tank.getBoundingClientRect().right>=window.innerWidth){
//做事
console.log(tank.getBoundingClientRect().right,window.innerWidth);
}
}
tank.addEventListener(“单击”,获取位置)

您知道油箱和屏幕的位置和尺寸:
screen.newX=Math.max(Math.min(screen.x,tank.x),tank.x+tank.width-screen.width)假设油箱和屏幕的注册点已离开。请提供您已经编写的一些代码。