在这个 Disqus 帮助页面上(也链接到 accepted answer):
Home › Developers › Using Disqus on AJAX sites
...有这个注释:
请参阅 Github 上的 DISQUS API 食谱库以获取 example DISQUS.reset recipe。
访问了那个仓库后,我决定问这个问题:
disqus / DISQUS-API-Recipes / Issue #7: Disqus resize on orientation change?
这是我的问题(在这里发帖是为了避免其他人不得不点击进入 GitHub):
问题:
我最近注意到 Disqus 嵌入在我的 iPhone 上在方向更改期间不会调整大小。
问题:
- 这是预期的行为吗?我假设 Disqus 嵌入应该缩放以适合其容器......这似乎是正确的,除了方向变化。
- 如果 Disqus 嵌入不能水平向上/向下缩放以适应容器的方向变化,the above Stack answer真的是使 Disqus 嵌入缩放以适应容器大小的最佳方法改变方向?
这里有可以帮助我的 API 配方吗?
这是答案:
这是意料之中的行为 - 我们实际上是这样做的,因为 iOS 上的 Safari 在方向更改期间难以正确调整 iframe 的大小,因此最终获得了更好的体验。
这不是可以通过您的集成来控制的,所以我将关闭它。我们将继续评估替代方案,如果我们找到更好的解决方案,一定会研究它。
可能的解决方案:
使用DISQUS.reset()技术作为@kafran的proposed(和orientationchange事件作为@MichaelReneer的suggested)。
请接受这样一个事实,即在 iOS 上,Disqus 嵌入不会在方向更改时调整大小。
使用您的元视口标签语法(见下文)。
我目前正在使用的解决方法涉及/涉及我更改我的 <meta name="viewport" ... > 从此(传统/标准设置):
<meta name="viewport" content="width=device-width, initial-scale=1">
...到这个:
<meta name="viewport" content="width=device-width">
仅使用width=device-width,这会使页面在横向更改时缩放,从而避免了Disqus 嵌入缩放的需要。
iOS docs say:
device-width:设备的宽度,以像素为单位。
除了上述之外,我无法从Apple doc pages for Configuring the Viewport 获得好的报价(我承认,我没有花很多时间搜索 Apple 的网站),但这里有一个很好的 StackOverflow 答案总结事情相当不错:
HTML5 Boilerplate: Meta viewport and width=device-width
相关资料:
如果您正在为 iOS 专门设计一个 Web 应用程序,那么您的网页的推荐大小是 iOS 上可见区域的大小。 Apple 建议您将宽度设置为 device-width,以便纵向缩放为 1.0,并且当用户更改为横向时不会调整视口大小。 [即。视口保留纵向设备宽度,但会缩放或拉伸以适应横向宽度]
此解决方案可能并不适合所有人。我碰巧正在做一个项目,我认为缩放会增加网站的功能(见下面的注释),所以我是一个快乐的露营者。
注意...
...关于 iOS 和 initial-scale=1:
<My2Cents>
当视口定义了initial-scale=1 时,我总是被页面在纵向/横向(在 iOS 上)之间“跳跃”的方式所困扰,这让我失去了自己的位置。
当仅定义 width=device-width 时,页面不会从纵向“跳转”到横向旋转,我会得到一个“更大”的放大视图。
就可用性而言,我更喜欢在旋转设备时保持原位,而不是在旋转设备之前必须四处滚动才能找到我正在查看的“纵向模式”内容。
关于在横向模式下放大更易于阅读的内容,还有一点要说。
最后,旋转手机进行缩放比捏合缩放更快/更容易! :)
</My2Cents>