2012-02-18 94 views
7

我正在尋找創建一個菜單佈局類似於amazon.com的網頁,我可以有嵌套的菜單,幷包括每個菜單項下的小說明文本。是否有任何jquery插件模仿amazon.com菜單佈局

在我開始創建這個從頭開始,我想看看是否有一個jQuery插件,模仿這種佈局和功能enter image description here

+0

您希望支持哪些瀏覽器?這可以很容易地使用CSS來完成。 – 2012-03-03 21:00:34

回答

16

這裏是一個確切外觀類似http://jsfiddle.net/blackpla9ue/KHLgm/8/

快速CSS唯一的解決辦法我設法得到在幾分鐘內完成。懸停在下拉菜單的第二個項目上。

它非常簡單和直接,如果你需要任何修改添加到只是讓我知道。

+0

不錯,它看起來就像亞馬遜上的那個,但它不是一個插件。 – 2012-03-04 08:29:39

+0

很高興你喜歡它。它不是一個插件,但所有你需要做的就是包含css部分並將css類調用到你的'ul'中 – blackpla9ue 2012-03-04 08:42:14

0

一下,我以爲你可以先創建一個下拉菜單,稍後再添加描述,稍微看看這個例子,它是非常基本的: http://webdesignerwall.com/tutorials/css3-dropdown-menu 或這裏: http://woork.blogspot.com/2008/01/simple-css-vertical-menu-digg-like.html

我已經檢查單元上亞馬遜和我發現,他們做同樣的方式,他們只是增加了一類風格吧:

<div class="navSaTagLine tiny">Vibrant color, movies, apps, and more</div> 

只是做一個下拉菜單第一和補充說明你要!

5

有maaaaany jQuery插件已經做到這一點,但這裏有一個小插件,我裹在10分鐘內:

(function($,window,undefined){ 
    var o; 
    $.fn.amazonLikeMenu = function(data,options){ 
     o = $.extend({},options,$.fn.amazonLikeMenu.defaultOptions); 
     return this.each(function(){ 
      createMenu($(this).addClass(o.classPrefix + '_container'),data); 
     }); 
    }; 
    $.fn.amazonLikeMenu.defaultOptions = { 
     classPrefix : "menu", 
     eventPrefix : "menu" 
    }; 
    function createMenu(container,data,options){ 

     container.data('initial_data',data); 

     var ul = $('<ul />').addClass(o.classPrefix + '_ul').appendTo(container), 
      liTemplate = $('<li />').addClass(o.classPrefix + '_li'), 
      descTemplate = $('<span />').addClass(o.classPrefix + '_desc'), 
      linkTemplate = $('<a href="#"/>').addClass(o.classPrefix + '_link'), 
      hTemplate = $('<h3 />').addClass(o.classPrefix + '_link'); 

     $.each(data,function(i,el){ 
      var li = liTemplate.clone().appendTo(ul); 
      if(el.title && el.link) 
       if(typeof el.link === 'string') 
        linkTemplate 
         .clone() 
         .text(el.title) 
         .attr('href',el.link) 
         .appendTo(li); 

       else 
        { 
         createMenu(li.addClass(o.classPrefix + '_has_submenu').append(hTemplate.clone().text(el.title)),el.link,o); 
        } 
      if(el.desc) 
       descTemplate 
        .clone() 
        .text(el.desc) 
        .appendTo(li); 
     }); 
    }; 
})(jQuery,window) 

你的菜單項包括對象的集合(有用的,如果你生成菜單動態地使用來自服務的數據):

[ 
    { 
     title : 'link 1', 
     link : '#page1' 
    }, 
    { 
     title : 'link 2', 
     link : '#page2', 
     desc : 'this is an awesome link' 
    }, 
    { 
     title : 'link 3', 
     link : [ 
      { 
       title : "submenu link1", 
       desc : "sample description", 
       link : "#submenu_link_1" 
      }, 
      { 
       title : "submenu link2", 
       link : "#submenu_link_2" 
      }, 
      { 
       title : "submenu link3", 
       desc : "sample description", 
       link : "#submenu_link_3" 
      } 
     ], 
     desc : 'I have a submenu' 
    }, 
    { 
     title : 'link 3', 
     link : '#page3', 
     desc : 'I dont have a submenu :((' 
    } 
]; 

這裏是演示:http://jsfiddle.net/gion_13/6QXZt/
它是可定製的,所以它可以調整到完全一樣的亞馬遜。

P.S. :必須記住,在這種情況下,CSS角色比jquery/javascript更大。

2

這裏是一個光滑的 - http://www.designchemical.com/lab/jquery-vertical-mega-menu-plugin/examples/

或爲簡單的事情 - http://qrayg.com/experiment/cssmenus

我不認爲有很多基本的(像亞馬遜)垂直菜單插件與「浮動」漂浮,因爲它們很容易創建只與HTML/CSS一個人。亞馬遜菜單可能完全沒有任何JavaScript。

一旦你建立了一個很好的CSS菜單(可訪問性加分),你可以很容易地轉換爲CSS懸停動作

例如li:hover > ul {display:block}

到一些jQuery的

$('li').hover(function(){ $(this).children('ul').show(200); })

1

不要聽這些小丑。你想要一個是測試許多網站和調試和是跨瀏覽器。有多少這些「看着我」菜單處理閃光燈選擇菜單後面的元素?有多少順利動畫和開 - 懸停不是onmouseover?多少可以輕鬆切換到水平在另一個項目上沒有學習更多的css類名和一個新的API?

無論如何,答案是快魚:

http://users.tpg.com.au/j_birch/plugins/superfish/#examples(垂直形式)

相關問題