【问题标题】:Reset zoom level onload重置缩放级别 onload
【发布时间】:2015-09-18 15:05:06
【问题描述】:

我没有 iPhone,因此无法自己测试,但根据客户的说法,如果他放大以更轻松地单击链接,那么当下一页加载时页面保持放大并且用户手动再次缩小。

请注意,这不是一个响应式网站(它没有设置元宽度=设备宽度)。

有什么办法可以防止这种情况发生吗?我尝试添加 maximum-zoom=1 onload 只是为了在几秒钟后将其删除,但这根本不起作用。

当我在谷歌上搜索这个问题时,我只能发现人们在改变 web 应用程序的方向时缩放级别会变得很糟糕——这不是同一个问题。

【问题讨论】:

  • 能否附上您网站的链接?
  • @SergeyDenisov 有问题的网站是 towejewels.com,但我觉得这发生在所有(至少没有响应)网站上。
  • @SantaClaus 不知道这是我在最后一段中提到的另一个问题。这只是一个普通的网站 - 不是网络应用程序。
  • @SergeyDenisov 页面上还有“标签”(JS 内容切换器)。我开始认为客户的意思是那些(当您单击它们时,页面不会重新加载,所以显然缩放杆保持不变..)

标签: ios mobile-safari zooming


【解决方案1】:

出于安全考虑,未经用户同意和手动输入,无法更改浏览器的缩放级别。您可以使用活动插件(Flash?)实现类似的效果,但这是真正重置浏览器缩放级别的唯一方法。

作为替代方案,您可以使用 transform: zoom() 属性 (a good SO reference) 更改浏览器的 CSS 缩放,并使网站看起来好像缩放已重置,但只是在一定程度上。在生产之前,您可能还需要调整非整数缩放级别和跨浏览器兼容性。即便如此,这个 CSS 实现可能不是您想要的,因为它通常只调整元素样式和字体大小。你也可以使用这个缩写的 jQuery 代码来达到同样的效果:$(document.body).css('zoom','150%')

【讨论】:

    【解决方案2】:

    我知道这可能是网络视图的问题。你可以简单地设置

    webView.scalesPageToFit = YES;
    

    如果上述方法不适用于您的情况,那么您需要对代码进行一些更改以适应 webview 中的内容。

    您可以查看此链接,它可能会对您有所帮助。 set content of webview without zooming out

    【讨论】:

    • 问题中没有WebView。
    猜你喜欢
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2011-05-07
    • 2013-09-07
    相关资源
    最近更新 更多