首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在iPhone上更改方向时重置web应用程序的缩放?

如何在iPhone上更改方向时重置web应用程序的缩放?
EN

Stack Overflow用户
提问于 2010-04-01 10:33:42
回答 8查看 115.2K关注 0票数 98

当我以纵向模式启动我的应用程序时,它工作得很好。然后我旋转到风景中,它被放大了。为了让它在横向模式下正确缩放,我必须双击两次,第一次是放大(正常的双击行为),第二次是缩小(再次是正常的双击行为)。当它缩小时,它会缩小到横屏模式的正确新比例。

切换回纵向似乎更一致;也就是说,它处理缩放,以便在方向更改回纵向时比例正确。

我想知道这是不是个bug?或者这是不是可以用JavaScript修复?

对于viewport元内容,我将初始比例设置为1.0,并且没有设置最小或最大比例(我也不想这样做)。我将宽度设置为device-width。

有什么想法吗?我知道很多人都希望有一个解决方案,因为这似乎是一个长期存在的问题。

EN

回答 8

Stack Overflow用户

发布于 2010-04-30 21:25:49

我也遇到了同样的问题,并且设置maximum-scale=1.0对我很有效。

编辑:正如评论中提到的,这不会禁用用户缩放,除非内容超过宽度分辨率。如前所述,这可能并不明智。在某些情况下,它也可能是所需的。

视口代码:

代码语言:javascript
复制
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;">
票数 13
EN

Stack Overflow用户

发布于 2010-10-13 15:36:03

如果在视口中设置了宽度:

代码语言:javascript
复制
<meta name = "viewport" content = "width=device-width; initial-scale=1.0;
 maximum-scale=1.0;" />

然后改变方向,有时它会随机放大(特别是当你在屏幕上拖动的时候)来解决这个问题,不要在这里设置宽度,我使用:

代码语言:javascript
复制
<meta id="viewport" name="viewport" content="initial-scale=1.0; user-scalable=0;
minimum-scale=1.0; maximum-scale=1.0" />

这修复了缩放,无论发生什么,你都可以使用window.onorientationchange事件,或者如果你想让它独立于平台(便于测试),就使用window.innerWidth方法。

票数 3
EN

Stack Overflow用户

发布于 2010-04-01 11:05:52

MobileSafari支持window对象上的orientationchange事件。不幸的是,似乎没有一种方法可以通过JavaScript直接控制缩放。也许您可以动态编写/更改控制视口的meta标记-但我怀疑这是否有效,它只影响页面的初始状态。也许你可以通过这个事件来调整你的CSS内容的大小。祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2557801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档