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