Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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/0/iphone/37.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 在iPhone web应用程序上,如何在收缩/缩放后获得视口比例?_Javascript_Iphone_Scale_Pinch - Fatal编程技术网

Javascript 在iPhone web应用程序上,如何在收缩/缩放后获得视口比例?

Javascript 在iPhone web应用程序上,如何在收缩/缩放后获得视口比例?,javascript,iphone,scale,pinch,Javascript,Iphone,Scale,Pinch,有人知道在用户用JavaScript放大/缩小页面后,如何获得以像素为单位的大小或视口的缩放值吗 我尝试过使用window.innerWidth,但结果不一。有时,它似乎可以准确地给出视口显示的像素数,但是,如果我放大一页,然后进行大幅收缩以缩小,window.innerWidth将在600-700左右,即使它仅显示约200像素的页面。该页面只有400px宽,当您缩小到页面大小之外时,它没有显示您看到的方格格图案的“you's Goe To far”背景 如果我做一些小的收缩来放大和缩小,win

有人知道在用户用JavaScript放大/缩小页面后,如何获得以像素为单位的大小或视口的缩放值吗

我尝试过使用window.innerWidth,但结果不一。有时,它似乎可以准确地给出视口显示的像素数,但是,如果我放大一页,然后进行大幅收缩以缩小,window.innerWidth将在600-700左右,即使它仅显示约200像素的页面。该页面只有400px宽,当您缩小到页面大小之外时,它没有显示您看到的方格格图案的“you's Goe To far”背景

如果我做一些小的收缩来放大和缩小,window.innerWidth似乎可以正常工作。不幸的是,我不能依靠用户只做一些小动作:)

我还尝试在手势事件对象上使用scale属性,但我发现这是不可靠的,因为在重新加载页面或使用后退/前进按钮导航到页面时,您并不总是知道初始比例,即使使用meta标记来指定它

最终,我尝试制作一个应用程序,该应用程序能够识别用户何时尝试缩小到最大缩放级别之外,因此,如果有其他方法可以做到这一点,我很想听听:)

下面是我用来获取innerWidth的代码:

document.body.addEventListener('gestureend', function (evt) {
    console.log(window.innerWidth); // inaccurate when doing large pinch gestures
}, false);

谢谢

如果您只是试图限制最大缩放级别,可以使用Safari特定的视口控制标记:

<meta name="viewport" content="maximum-scale=2.0">

有关详细信息,请参阅特定于Safari mobile的