5

我刚刚发现:http ://bjk5.com/post/44698559168/break-down-amazons-mega-dropdown ,我想在我的网站上实现它,但坦率地说我不知道​​怎么做。

我阅读了文档,内容如下:

但我不确定我应该做什么。

jQuery代码是否应该index.html在标签中的页面上<script>

此外,我知道我应该这样使用它:

$("#menu").menuAim({
    activate: $.noop,  // fired on row activation
    deactivate: $.noop,  // fired on row deactivation
});

但是我怎么知道我应该使用哪个类?

我的菜单代码如下:

 <h3 class="demo-panel-title">Menu</h3>
  <div class="row demo-row">
    <div class="span9">
      <div class="navbar navbar-inverse">
        <div class="navbar-inner">
          <div class="container">
            <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <div class="nav-collapse collapse">
              <ul class="nav">
                <li>
                  <a href="#">
                    Menu Item
                    <span class="navbar-unread">1</span>
                  </a>
                </li>
                <li class="active">
                  <a href="#">
                    Messages
                    <span class="navbar-unread">1</span>
                  </a>
                  <ul>
                    <li><a href="#">Element One</a></li>
                    <li>
                      <a href="#">Sub menu</a>
                      <ul>
                        <li><a href="#">Element One</a></li>
                        <li><a href="#">Element Two</a></li>
                        <li><a href="#">Element Three</a></li>
                      </ul> <!-- /Sub menu -->
                    </li>
                    <li><a href="#">Element Three</a></li>
                    <li>
                      <a href="#">Sub menu</a>
                      <ul>
                        <li><a href="#">Element One</a></li>
                        <li><a href="#">Element Two</a></li>
                        <li><a href="#">Element Three</a></li>
                        <li><a href="#">Element One</a></li>
                        <li><a href="#">Element Two</a></li>
                        <li><a href="#">Element Three</a></li>
                      </ul> <!-- /Sub menu -->
                    </li>

                  </ul> <!-- /Sub menu -->
                </li>
                <li>
                  <a href="#">
                    About Us
                    <span class="navbar-unread">1</span>
                  </a>
                </li>
              </ul>
            </div><!--/.nav-collapse -->
          </div>
        </div>
4

3 回答 3

8

这只是我放在一起的演示代码,因为在嵌套时我无法让我的标记工作。我不得不把 subnav 项目放在不同的盒子里。

http://codepen.io/mikevoermans/pen/EtKxp

HTML

<ul id="main_nav">
            <li><a href="#">Item 1</a></li>
            <li><a href="#">Item 2</a></li>
            <li><a href="#">Item 3</a></li>
            <li><a href="#">Item 4</a></li>
            <li><a href="#">Item 5</a></li>
        </ul>


        <div id="flyouts">

            <ul class="sub-menu">
                <li><a href="#">Sub Item 1</a></li>
                <li><a href="#">Sub Item 2</a></li>
                <li><a href="#">Sub Item 3</a></li>
                <li><a href="#">Sub Item 4</a></li>
            </ul>

            <ul class="sub-menu">
                <li><a href="#">Sub Item 1</a></li>
                <li><a href="#">Sub Item 2</a></li>
                <li><a href="#">Sub Item 3</a></li>
                <li><a href="#">Sub Item 4</a></li>
                <li><a href="#">Sub Item 5</a></li>
                <li><a href="#">Sub Item 6</a></li>
                <li><a href="#">Sub Item 7</a></li>
                <li><a href="#">Sub Item 8</a></li>
            </ul>

            <ul class="sub-menu">
                <li><a href="#">Sub Item 1</a></li>
                <li><a href="#">Sub Item 2</a></li>
                <li><a href="#">Sub Item 3</a></li>
                <li><a href="#">Sub Item 4</a></li>
                <li><a href="#">Sub Item 5</a></li>
                <li><a href="#">Sub Item 6</a></li>
                <li><a href="#">Sub Item 7</a></li>
            </ul>

            <ul class="sub-menu">
                <li><a href="#">Sub Item 1</a></li>
                <li><a href="#">Sub Item 2</a></li>
            </ul>

            <ul class="sub-menu">
                <li><a href="#">Sub Item 1</a></li>
                <li><a href="#">Sub Item 2</a></li>
                <li><a href="#">Sub Item 3</a></li>
                <li><a href="#">Sub Item 4</a></li>
            </ul>

        </div>
        <!-- /#flyouts -->

JS

$("#main_nav").menuAim({
    activate: function(a){
        var idx = $(a).index();
        $('#flyouts ul').eq(idx).show();
    },  // fired on row activation
    deactivate: function(a){
        var idx = $(a).index();
        $('#flyouts ul').eq(idx).hide();

    }  // fired on row deactivation
});
于 2013-03-07T17:58:16.207 回答
5

这比 mikevoermans 发布的更清晰、更语义化(无意冒犯)。

您可以保留嵌套,而不必制作额外的 var。另外,按索引定位是不好的,因为如果您的某个项目没有子导航怎么办。

您只需要相应地指定所有内容。我让它在 Natgeo 网站上运行,但我无法链接到它,因为我们还没有启动。

HTML:

<nav id="main-nav">
<ul>
    <li class="parentnav">
        <a>Parent</a>
        <ul class="subnav">
            <li><a href="" title="">child</a></li>
            <li><a href="" title="">child</a></li>
        </ul>
    </li>
    </li>
        <a>Parent</a>
    </li>
    <li class="parentnav">
        <a>Parent</a>
        <ul class="subnav">
            <li><a href="" title="">child</a></li>
            <li><a href="" title="">child</a></li>
        </ul>
    </li>
</ul></nav>

JS:

$("#main-nav").menuAim({
    rowSelector: "li.parentnav",
    submenuDirection: "below",
    tolerance: 0,
    activate: function(a){
        $(a).children('.subnav').show();
    },
    deactivate: function(a){
        $(a).children('.subnav').hide();
    }
});

// 方向可以是:左、右、上或下。

// 更大的容忍度 = 更少的容忍度..它是向后的并且错过领先但就是这样 0 意味着有很大的容忍度,所以少即是多:/

于 2013-06-18T22:56:12.030 回答
0

我不知道您的 css 菜单当前适用于哪些类,但要使其正常工作,您只需将空的 jQuery 函数 $.noop 替换为适用于您的类的函数即可。遵循以下几行的东西应该可以工作(使用 nav 类):

$(".nav").menuAim({
    activate: function(a){$(a).addClass("submenu-visible")},  
    deactivate: function(a){$(a).removeClass("submenu-visible")},  
});
于 2013-03-07T09:35:36.507 回答