2013-03-06 55 views
5

我剛剛發現:http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown,我想在我的網站上實現它,但坦率地說,我不知道如何。使用jQuery-menu-aim

我閱讀文檔,並且其計算方法如下:

但我不知道我應該做的。

jQuery這個jQuery這個代碼應該位於<script>標記的index.html頁面上嗎?

此外,我得到我應該把它作爲這樣的:

​​

但是我怎麼知道我應該用什麼課?

我的菜單代碼如下:

<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> 
+0

我#nav作爲類試過,但它似乎沒有工作。誰能幫忙? – 2013-03-06 23:23:38

+0

我遇到了同樣的問題,我無法使其工作。在亞馬遜上非常出色 - 但我覺得它不僅與結構有關,而且與子菜單的風格有關。我在子菜單上留下了一個巨大的負面左側位置 - 我認爲這是在搞數學。 – mikevoermans 2013-03-07 15:03:25

+1

也許這會有所幫助:我剛剛向菜單目標存儲庫添加了一個工作示例。請查看https://github.com/kamens/jQuery-menu-aim中的示例/ example.html,並瞭解它的過程。 – kamens 2013-03-09 20:40:43

回答

0

我不知道什麼類你的CSS菜單當前工作,但得到這個工作,你應該只是更換空的jQuery函數$ .noop一個與你的課程一起工作的人。 東西沿着以下行應該工作(使用導航類):

$(".nav").menuAim({ 
    activate: function(a){$(a).addClass("submenu-visible")}, 
    deactivate: function(a){$(a).removeClass("submenu-visible")}, 
}); 
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 
}); 
+0

嗨邁克,我喜歡你使用show()和hide()。你可以編輯你的答案與相關部分顯示實際的代碼?看到這個元SO貼文爲什麼只是一個鏈接要避免:http://meta.stackexchange.com/questions/149890/prevent-posts-with-links-to-jsfiddle-and-no-code – AardVark71 2013-03-08 13:23:44

+0

@ AardVark71在代碼示例中添加 - 感謝我應該直接在此處包含代碼的信息。只是認爲,如果沒有工作演示的探索性背景,理解這可能會很困難。 – mikevoermans 2013-03-11 15:27:02

+0

它適用於多個菜單項嗎?出於某種原因,在兩個UL或DIV – Anthony 2015-02-18 16:37:31

4

這是更清潔,比mikevoermans發佈(無犯罪)更多的語義。

你可以保持你的嵌套,你不必做額外的變種。另外,按索引定位不好,因爲如果其中一個項目沒有subnav會怎麼樣。

你只需要相應地指定一切。我在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(); 
    } 
}); 

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

//更寬容=少tolerant..it的倒退而錯過領先,但僅此而已 0手段有很大的包容性,所以少即是多:/

+0

提及「容差」選項的情況下,不會使用CLASS而不是ID。因爲它實際上不在github頁面的文檔中,所以我不知道這個設置。使事情變得更加「可調」。 – 2014-12-04 14:20:21