jQuery mmenu会使页面自动跳转到顶部。

3
为了完成一个大学项目,我正在尝试将移动菜单应用于响应式网站。为此,我使用了jQuery插件mmenu。
一切似乎都很正常,除了一个问题: 每当我打开菜单时,它就会滚动到页面顶部而不是停留在原地。我还发现,在菜单打开时无法滚动页面(与此处的示例相反:http://mmenu.frebsite.nl/mmenu/demo/onepage.html
我的代码结构如下:
<body>
    <!-- Mobile Navigation -->
    <nav id="mobilenav">
        <div>
            <ul>
                ... 
            </ul>
        </div>
    </nav>
    <div id="wrapper">
        <header class="mm-fixed-top hidden-desktop">
            ...
            <a href="#mobilenav" class="pull-left"><i class="fa fa-bars"></i></a>
            ...
        </header>
        <div id="topbar">
            ...
        </div>
        <div id="content">
            ...
        </div>
    </div>
    <div id="tothetop" class="hidden-desktop">
        ...
    </div>
    <div id="bottom" class="visible-desktop">
        ...
    </div>
    <!-- Scripts -->
        ...
</body>

你可以在http://www.mikehudson.de/BA/上看到这个问题的情况。谢谢您提前的回答。--Mike

检查你的 CSS 中的 html 和 body。 如果两者的高度都是100%,它会导致这些跳动。 - 5ulo
2个回答

5
如果您正在使用 Foundation 5 这个插件,那么您可以在 global.scss 文件中将 html、body 的高度从 100% 改为 auto。请注意,不要删除任何 HTML 标签。
// Must be 100% for off canvas to work


    html, body { height: 100%; }

TO:

// Must be 100% for off canvas to work


     html, body { height: auto; }

3
如果您将100%应用于body/html,请确保在单击事件上调用preventDefault(),如果您的触发器在href中包含“#”则需要这样做。这让我困惑了一段时间。

我已经改成了自动模式,并且没有使用锚点(而是使用 span),但它仍然会跳转... - Shahar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接