【问题标题】:iOS6, android and position:fixed and scalingiOS6、android和位置:固定和缩放
【发布时间】:2012-12-06 21:02:01
【问题描述】:

我有一个网站,配置如下:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=5.0;minimum-scale=1.0;user-scalable=1;" />

和一个带有

的 div 元素
<div style="position:fixed;top:0;left:0;width:100%;height:40px;">Fixed Header Content</div>

(您可以在此处找到示例:http://massmatics.de/demo/test.html

在 iOS 上观看此网站并进行缩放时,此元素的大小会增加,但会超出缩放区域。

在 android 上执行相同操作时(在 Nexus 平板电脑上使用 Android 4.x 测试),固定元素会在缩放时消失,但当此操作完成后,它会在缩放区域以放大版本显示。

我认为chrome的行为是对的,但我现在的问题是:

有没有办法在 android 上获得与在 iOS 上相同的行为?

我问的原因是我的页面上有很多内容,在小型设备上查看时应该缩放,但在 Android 上,放大的固定元素占用了所有空间,所以缩放并不是真正的优势.

最好的问候

更新:我在示例中添加了 position:fixed 的 JS 实现(我知道,性能很差,仅用于测试目的。) - 仍然与 position:fixed 的行为相同。是否有用户缩放页面的事件?

【问题讨论】:

  • 在移动版本上使用fixed 是不可能的,因为它实际上不适用于移动设备呈现页面的方式——当您滚动时。它们在台式机上可能很好,但对于移动设备,我只需将其放在页面顶部即可。
  • 我对@9​​87654325@的实现没有问题,这在iOS6和android 4.x上的chrome上运行良好。唯一的问题是缩放页面时的不同实现。

标签: android ios css


【解决方案1】:

position:fixed 支持是去年在 iOS5 中添加的 - 根据我的经验,Android 处理这些元素的方式不一致。

我相信完成您正在尝试做的事情的唯一可预测的方法是使用 JavaScript 将其全部连接起来。可能不是您希望的答案,但 position:fixed 无论如何都不是移动设备上的正确解决方案。

【讨论】:

  • 你有什么特别的 js 实现吗?我使用 jQuery 版本从上面更新了我的示例,但是在 android 上缩放时的行为与 position:fixed 相同。
猜你喜欢
  • 2014-11-29
  • 1970-01-01
  • 2014-01-03
  • 2014-07-19
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多