HTML - 移动布局 - 方向更改后的滚动位置

标签 html css

我在尝试测试移动应用程序的布局时遇到了问题。我有两个元素放在一个容器中,它们彼此齐平。如果我滚动到其中一个页面(仅使用标准滚动,没有脚本)并更改方向,一切都很好,并且元素会适本地重新调整自身大小。但是当我恢复到之前的方向时,滚动位置似乎丢失了,并且滚动位置在两个元素之间。

这对我来说很难描述,因为我不确定发生了什么,所以我提供了 code I am using

您需要将其加载到设备上以查看发生了什么。以横向加载它,滚动直到所有绿色页面都可见,然后更改为纵向。然后回到风景。您将看到一半红色页面和一半绿色页面。

这是否与我设置视口(viewport)的方式或 webkit 浏览器的已知问题有关,因为这在 IOS 和 android(以及 chrome)上都会发生?

感谢任何帮助!

最佳答案

嗯,这实际上很合逻辑:

假设您使用的是 iPhone。您的屏幕纵向尺寸为 320x480,横向尺寸为 480x320。

在纵向模式下,全局 div 是 200%,所以是 640px。绿色部分在 320px 处。 在横向上,你的全局 div 是 960px 宽。绿色部分在 480px 处。

如果你去纵向的绿色部分,你滚动到 320px。当你改变方向时,你仍然在 320px,但绿色部分现在在 480px:卡在中间。

可能的解决方案:javascript,监听 onorientationchange 事件并设置正确的偏移量。

其他(但不好的)解决方案:固定宽度的视口(viewport),例如:

<meta name="viewport" content="width=400px,initial-scale=1.0,maximum-scale=1.0" />

关于HTML - 移动布局 - 方向更改后的滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876352/

相关文章:

html css 高度重叠在包含元素之外

javascript - 宠物小 Sprite JSON If 语句问题

php - Laravel - htmlentities() 期望参数 1 为字符串,给定数组

javascript - 使用Javascript计算并输入html

切换到中东语言时 HTML 字体太小

css - 元素 bg 图像未显示

html - 单击时同时更改两个脚注链接的背景颜色?

javascript - 向下滚动页面时如何保持 float 顶部栏?

javascript - 粘性表头

css - 溢出;仅隐藏 iFrame -(如何在托管网页上保留滚动条?)