【问题标题】:iOS: wrong element is being scrollediOS:滚动错误的元素
【发布时间】:2015-01-06 11:16:11
【问题描述】:

我在www.cahri.com/tests/scroll 上显示的 iOS(7 或 8)上遇到了一个奇怪的滚动问题

如何重现?

  1. 在 iPhone/iPad/iOS 模拟器上横向打开示例页面
  2. 用右手拇指触摸主要内容(右侧)并向上或向下滚动
  3. 松开右手拇指
  4. 用左手拇指触摸左侧(这是一个带有溢出:滚动的 div)并尝试滚动:页面滚动而不是 div。松开左手拇指。
  5. 可能需要多次尝试才能重现,如果页面不滚动,请返回 2。
  6. 用左手拇指再次触摸左侧,现在它可以正确滚动了

您知道导致问题的原因吗?以及如何解决这个问题?

【问题讨论】:

  • 下面移动答案。
  • 这是一个非常古老的 iOS 问题。永远不要修复。请参阅this 发生在 iOS 5 中,this 发生在 iOS 7 中。

标签: ios css scroll


【解决方案1】:

iOS 网络浏览器仍然会遇到固定定位元素(就像您的左侧 div)和滚动的问题。在我所做的许多 Web 项目中,这似乎总是会导致一些无法解释的问题/错误。我知道这不是一个确切的答案,但我只是在分享我以前曾走过这条路:)

最好的解决方案是使用一种摆脱移动设备固定定位和滚动的方法,或者使用第三方滚动库,例如:http://cubiq.org/iscroll-5

我在 iOS 设备上使用它们取得了很大的成功。

如果您想要一个不同的移动解决方案,您可以使用媒体查询来更改元素的定位。

@media screen and (max-width: 600px) {
  .column-left { ... }
}

【讨论】:

  • 还有一件事,OP忘记正确设置视口。
  • 感谢@Alex,问题是我在使用 iScroll 5 时遇到了性能问题,因此需要坚持使用原生 iOS 滚动。示例页面是我的页面的精简版,内容最少,足以重现该问题。我添加了视口,但没有解决任何问题。
  • 当然。视口只是作为一个参考,如果您想为左列做一些不同于固定定位的事情。除非问题很大,否则我会再试一次 iScroll,因为它可以处理很多事情。
猜你喜欢
  • 2011-05-26
  • 2014-02-03
  • 1970-01-01
  • 2015-12-10
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 2023-03-07
相关资源
最近更新 更多