3

我正在尝试为我正在开发的移动网站找到显示导航/菜单的最佳技术。到目前为止,我所有的解决方案都有缺陷,我想知道是否有人能指出我正确的方向。(您可能必须减小浏览器窗口大小以使示例按预期工作)

首先,看看这个“基本”示例: http ://audunaas.no/menu/problem.html

您会注意到导航打开时内容仍可滚动。这是令人困惑和烦人的。

我第一次尝试修复是在导航打开时将主体设置为溢出:隐藏和位置:固定。此处的示例:( 必须删除链接,因为帖子中最多有 2 个链接)

然而,这会导致 body 快速回到顶部并“忘记”它的滚动位置。这意味着每当您打开导航时,您都会回到页面顶部。不好。

最后,到目前为止,我最好的解决方案是将所有页面内容放在#scroll-area-div 中,固定位置占据大部分屏幕,并将正文滚动设置为隐藏。这里的例子:http: //audunaas.no/menu/

这解决了页面本身的大部分问题,但破坏了后退按钮的“记忆”。这意味着每当您在浏览器中单击返回时,您将被带到页面顶部,而不是返回到您决定单击链接之前的位置。(移动 safari 似乎是唯一能记住 div 和 body 上的滚动位置的浏览器)

除了某种javascript之外,我真的想不出更多的解决方案。有没有人对类似案例有一些经验,或者对如何实现这一点有任何想法?

解决方案必须:

  • 导航打开时防止滚动页面内容
  • 导航打开时保留页面内容的滚动位置
  • 使用后退按钮时记住上一页的滚动位置
4

0 回答 0