我正在尝试在bulma css上使用汉堡菜单,但它不起作用.怎么了?

mog*_*oge 16 html css nav bulma

我是bulma css http://bulma.io/的新手.

我正在尝试为移动用户使用汉堡包菜单.我只是按照这个页面上的说明操作:http://bulma.io/documentation/components/nav/

但它不起作用.我应该添加什么?

实际上,我可以看到汉堡包菜单,但是当我点击它时它不起作用.

谢谢.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
        <title>test</title>

        <link rel="stylesheet" href="css/bulma.min.css">
        <link rel="stylesheet" href="css/custom.css">
    </head>
    <body>
        <section class="hero is-fullheight is-primary is-bold">
            <!-- Hero header: will stick at the top -->
            <div class="hero-head">
                <header class="nav">
                    <div class="container">
                        <div class="nav-left">
                            <a class="nav-item" href="/">
                                <img src="img/logo.png" alt="Logo">
                            </a>
                        </div>
                        <span class="nav-toggle">
                            <span></span>
                            <span></span>
                            <span></span>
                        </span>
                        <div class="nav-right nav-menu">
                            <a class="nav-item" href="/about">
                                About
                            </a>
                            <a class="nav-item" href="/path">
                                Path
                            </a>
                            <a class="nav-item" href="/blog">
                                Blog
                            </a>
                        </div>
                    </div>
                </header>
            </div>
            <!-- Hero content: will be in the middle -->
            <div class="hero-body">
                <div class="container has-text-centered">
                </div>
            </div>
        </section>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

tbo*_*onz 25

此解决方案使用Vue.js在移动设备上查看时切换bulma nav组件.我希望这有助于其他寻求替代解决方案的人.

JS

首先,我为vue.js添加了cdn,可以在这里找到https://unpkg.com/vue,并在javascript中包含一个Vue实例.

new Vue({
  el: '#app',
  data: {
    showNav: false
  }
});
Run Code Online (Sandbox Code Playgroud)

HTML

一个.使用元素"app"包装nav部分以使其成为被动的(这映射到Vue实例的"el"属性).

<div id="app"> ... </div>
Run Code Online (Sandbox Code Playgroud)

湾 使用v-on:指令更新.navbar-burger以侦听click事件并切换数据属性showNav.

<div class="navbar-burger" v-on:click="showNav = !showNav" v-bind:class="{ 'is-active' : showNav }">
Run Code Online (Sandbox Code Playgroud)

C.使用v-bind:指令更新.navbar-menu,以使用showNav属性的结果来反应性地更新class属性.

<div class="navbar-menu" v-bind:class="{ 'is-active' : showNav }">
Run Code Online (Sandbox Code Playgroud)

我在这个jsfiddle中包含了整个解决方案

  • 来自谷歌并希望添加到您的答案,因为`nav`将很快被Bulma弃用.如果您正在使用`navbar`示例,只需要在navbar-burger标签中添加`:class ="{'is-active':showNav}"@ click ="showNav =!showNav"`以及`:class = "{'is-active':showNav}"`到导航栏菜单 (3认同)

sem*_*boi 8

这可能是文档中给出的示例的问题,我能够通过向.nav-toggle和.nav-menu添加id来使其工作.

<span id="nav-toggle" class="nav-toggle"><div id='nav-menu' class="nav-right nav-menu">

jsfiddle在这里.

因此,为了使示例正常工作,您必须将'id'添加到相应的元素中.我建议深入了解文档

  • 遗憾的是,您的示例依赖于 jQuery。 (4认同)

小智 5

(function() {
    var burger = document.querySelector('.nav-toggle');
    var menu = document.querySelector('.nav-menu');
    burger.addEventListener('click', function() {
        burger.classList.toggle('is-active');
        menu.classList.toggle('is-active');
    });
})();
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可能会回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高​​答案的长期价值。 (4认同)