4

我可以在 iphone 的 android 等移动平台上获取 window.innerWidth 或 window.innerHeight。

 var w = window.innerWidth;

但我想将它设置回它的旧值,我的意思是当用户通过捏缩放时,innerWidth 和 innerHeight 值会改变。我可以获得新值,但我希望屏幕尺寸回到原来的位置,但我永远无法改变尺寸

window.innerWidth = foo;
window.innerWidth = 'foopx';
window.resizeTo(foo,bar);

他们都没有在 android 或 iphone、ipad (safari, mobile chrome) 上面工作。如何消除捏缩放的效果?我不想阻止或禁用它,用户可以缩放但在缩放操作之后我想取消缩放以返回其原始位置。如何调整(更改)window.innerWidth、innerHeight 值?

4

1 回答 1

1

我向你展示了一个丑陋的杂物,但到目前为止,我知道如何做你想做的唯一方法。

假设在你的 html 中你有

<meta id="myViewPort" name="viewport" content="whatever" />

然后在某个脚本中你有这个

function resetScale()
{
    var viewport = document.getElementById('myViewPort')
    var content = viewPort.content;
    viewport.content = 'what=ever, user-scalable=no';

    window.setTimeout(function()
    {
        viewport.content = content;
    },1);
}

是的,超时是必需的。没有它,秤不会重置。此外,视口需要片刻才能注意到用户可缩放不再关闭。在您再次开始缩放之前,我已经延迟了长达 10 秒,而在其他时候您可以立即开始缩放。

于 2014-01-06T08:50:16.593 回答