html - 缩放时 CSS "position: fixed"在移动设备上无法正常工作

标签 html css position zooming fixed

我正在实现一个固定的垂直菜单。它在桌面上运行良好,在移动设备(IOS、Android)上看起来也很棒……只要您不放大页面即可。当您在移动设备上缩放时,固定元素开始覆盖其他页面内容(因为它应该固定在视口(viewport)上的某个位置)。

但我正在寻找的是一个仅垂直固定的导航栏。因此,如果您放大并水平滚动,导航栏不会覆盖内容。有办法做到这一点吗?

最佳答案

这是一个常见问题,据我所知,仅使用 CSS 无法仅垂直修复。您可以选择:

  • 使用视口(viewport)元标记禁用缩放(但这可能不利于可访问性)。
  • 在移动设备上使用 javascript 控制菜单位置。例如,不是使用固定位置,而是给它一个绝对位置,并在每个 window.scroll 事件上更新菜单的顶部位置。然而,这会在非最先进的设备上导致令人不快的结果(因此在大多数设备上,您会看到位置更新伴随着不断的冲击)。第二个问题是 Apple 设备上的平滑滚动,这会阻止您在“平滑滚动”期间获取有关文档滚动位置的任何信息。因此,您还必须禁用平滑滚动(可能在主体上使用 CSS 行),但这也会给用户带来负面体验。

这就是为什么菜单通常变成汉堡包图标并且只有在按下汉堡包图标时才会出现的原因。水平滚动时左上角的小汉堡图标不会那么烦人,因为它很小。

关于html - 缩放时 CSS "position: fixed"在移动设备上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727259/

相关文章:

javascript - 隐藏右侧按钮时,中间引导按钮组中的圆 Angular 丢失

html - CSS 方形背景 - 图像

javascript - 背景位置底部 parseInt

css - 使用 'px' 与 '%' 时顶部、右侧、底部、左侧 css 值的行为

css - 背景图片的 div 位置

javascript Y滚动条在向下按钮的鼠标上移动但窗口水平

html - 页脚组件位置

html - 悬停在一个元素上触发多个 CSS 动画

html - 占位符框的 CSS(设计时所见即所得)

html - 相对于另一个元素定位元素,相对于窗口绝对定位