Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 缩放时如何使window.innerHeight在移动设备上工作?_Javascript_Jquery_Iphone_Ipad_Mobile - Fatal编程技术网

Javascript 缩放时如何使window.innerHeight在移动设备上工作?

Javascript 缩放时如何使window.innerHeight在移动设备上工作?,javascript,jquery,iphone,ipad,mobile,Javascript,Jquery,Iphone,Ipad,Mobile,是的,它将返回移动设备上浏览器的高度值。然而,当用户试图收缩以放大或缩小时,问题就出现了(在某些浏览器上)。该值将不会正确调整,而是返回页面的完整长度 假设加载时是500px。然后用户放大,高度现在是200px。但是,该值仍返回500px 有人知道解决这个问题的方法吗?一直在搜索。我解决这个问题的方法是删除代码中的任何调整大小回调。听起来很奇怪,但对我来说很有效。请查看此链接中的公认答案: 如果您需要innerHeight,可以先获取原始宽度,然后缩放宽度,再获取缩放比率,然后计算新高度(缩放

是的,它将返回移动设备上浏览器的高度值。然而,当用户试图收缩以放大或缩小时,问题就出现了(在某些浏览器上)。该值将不会正确调整,而是返回页面的完整长度

假设加载时是500px。然后用户放大,高度现在是200px。但是,该值仍返回500px


有人知道解决这个问题的方法吗?一直在搜索。

我解决这个问题的方法是删除代码中的任何调整大小回调。听起来很奇怪,但对我来说很有效。

请查看此链接中的公认答案:


如果您需要innerHeight,可以先获取原始宽度,然后缩放宽度,再获取缩放比率,然后计算新高度(缩放后)。

这对我很有用。我要做的第一件事是在页面加载时从dom中抓取window.innerHeight和window.innerWidth,以便获得原始值并将它们存储在javascript变量中。然后在我的window.onresize事件处理程序中执行此操作

window.innerHeight
我的应用程序调整了很多,因为我试图为所有屏幕类型编写一个ui。根据我对该应用程序的测试,它可以在ipad和andriod上运行,并且当放大或方向改变时,所有的大小调整都可以工作,这有时会导致缩放


有趣的是,移动浏览器从来不会改变屏幕大小,因为它们是固定的,它们只是缩放。但是,如果您调整到原始宽度/高度,并以这种方式处理方向,它似乎会起作用。

这意味着innerHeight确实给出了正确的值,并且我的代码中存在导致问题的内容。我还没有测试过这一点,但我认为情况并非如此。在android浏览器和Firefox mobile中,innerheight没有返回放大的高度。不过Opera mobile运行正常。这可能在Safari中有效,但在Android浏览器和FireFox mobile中无效。尽管如此,如果我能检测到zoom跨浏览器手机,这肯定是一个解决方案。您是否选中了-**document.documentElement.clientWidth**?缩放时,innerHeight会调整,但clientWidth/clientHeight不会调整。
var height = null;
var width = null;

if (window.orientation && window.orientation == -90) {
  height = myOriginalHeight;
  width = myOriginalWidth;
}
else {
  height = myOriginalWidth;
  width = myOriginalHeight;
}
doCallbacks(width, height);