移动导航处于活动状态时阻止滚动的最佳方法是什么?

时间:2013-11-11 10:53:28

标签: javascript css mobile navigation scroll

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

首先,看看这个"基本"例如: http://audunaas.no/menu/problem.html

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

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

然而,这导致身体快速回到顶部并且忘记了#34;它的滚动位置。这意味着无论何时打开导航,您都会被带回页面顶部。不好。

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

这解决了页面本身的大部分问题,但打破了内存"后退按钮。这意味着每当您在浏览器中单击后退时,您将被带到页面顶部而不是返回到您决定单击链接之前的位置。 (移动游猎似乎是唯一一个记住div以及身体滚动位置的浏览器)

除了可能某种类型的javascript之外,我无法再考虑更多解决方案。 是否有人有类似案例的经验,或者有关如何实现这一目标的任何想法?

解决方案必须:

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

0 个答案:

没有答案