在移动浏览器中设置window.innerWidth和window.innerHeight

时间:2013-06-28 10:19:34

标签: android ipad mobile resize window

我可以在移动平台上获得window.innerWidth或window.innerHeight 比如android的iphone。

 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值?

1 个答案:

答案 0 :(得分:1)

我向你呈现一个丑陋的kludge,但到目前为止,我知道如何做你想要的唯一方式。

让我们说你的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秒钟的延迟,有时你可以立即开始变焦。