我正在开发一个由 Wordpress 驱动的网站的 iPhone 版本,我想知道当该网站在 iPhone 版 Safari 中打开时是否有任何方法可以禁用水平滚动。现在,我已经完成了一半的开发,只是为了检查是否可以禁用水平滚动,我隐藏了任何超出屏幕宽度的元素,但我仍然可以水平滚动到右侧。我尝试将以下代码放入
<style>
中的 <head>
标签中,但这没有帮助:
body { 溢出-x:隐藏; }
我已将以下
<meta>
代码放入头文件中,以在用户从 iPhone 查看网站时进行回显,但它只会禁用用户捏合,即您无法通过捏合屏幕来放大和缩小。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
我目前使用 iPhone 4 查看该网站,可以通过以下链接访问该网站:http://ignoremusic.com。期待大家的解决方案,谢谢。
解决方案: 正如@Riskbreaker所建议的,有一些元素超出了〜312px的宽度,这就是为什么我仍然可以 向左滑动并调整所有此类元素的宽度后, 我禁用了水平滑动。我学到的一件事是隐藏 对于 iPhone/iPad,overflow-x 没有帮助,你必须 将所有元素的宽度减小到您的宽度 否则您仍然可以水平滑动。
我知道我参加聚会有点晚了,但我也遇到了同样的问题,并通过添加解决了它:
body, html{
overflow-x: hidden;
}
希望这对其他人有帮助!
像这样在你的身体上添加溢出:
body {
font: 12px/20px "Helvetica neue", Helvetica, Arial, sans-serif;
font-weight: normal;
overflow: hidden;
overflow-y: auto;
}
是的,坚持下去:
<meta name="viewport" content="width=device-width">
对于位于视口区域之外的移动菜单,我也遇到了同样的问题。溢出-x:隐藏在Android手机中已解决,但在iPhone中未解决。我通过将菜单的“绝对”位置更改为“固定”位置来解决:
body { overflow-x: hidden; }
nav { position: absolute; width: 300px; right: -300px; }
至:
body { overflow-x: hidden; }
nav { position: fixed; width: 300px; right: -300px; }
希望有帮助。
对我来说,这也解决了问题:
html {
overflow-x: hidden;
max-width: 100vw;
}
通过最大宽度,屏幕似乎是固定的。
我最近遇到了同样的问题,但其他答案都不适合我。在最新版本的 Safari(至少是桌面版)中,您还必须将位置设置为相对位置。
body, html {
position: relative;
overflow: hidden;
}
实现此目的的另一种方法是使用
touch-action
body {
touch-action: pan-y; /** Disable horizontal scrolling */
}