基于jQuery實現(xiàn)的菜單切換效果
這是一個非常流暢的菜單展示效果,應(yīng)用在亞馬遜上,當你上下移動鼠標的時候,二級菜單會非常輕快的切換,沒有任何延時,給用戶如滑絲般的感覺。這種效果借助于一款jQuery插件menu-aim,本文將結(jié)合實例講解如何實現(xiàn)速度超快的菜單效果。

HTML
首先建立主菜單,我們借用電商網(wǎng)站常見的商品分類。其html結(jié)構(gòu)代碼如下,其中我們用到了html5的data-submenu-id屬性設(shè)置,這在插件調(diào)用時非常有用。
<div class="active">
<ul class="dropdown-menu" role="menu">
<li data-submenu-id="submenu-patas"><a href="#">服裝服飾</a></li>
<li data-submenu-id="submenu-snub-nosed"><a href="#"> 箱包配飾</a></li>
<li data-submenu-id="submenu-duoc-langur"><a href="#">數(shù)碼家電</a></li>
<li data-submenu-id="submenu-pygmy"><a href="#">美容護發(fā)</a></li>
<li data-submenu-id="submenu-tamarin"><a href="#">母嬰用品</a></li>
<li data-submenu-id="submenu-monk"><a href="#">家居建材</a></li>
<li data-submenu-id="submenu-gabon"><a href="#">食品百貨</a></li>
<li data-submenu-id="submenu-grivet"><a href="#">戶外汽車</a></li>
<li data-submenu-id="submenu-red-leaf"><a href="#">文化玩樂</a></li>
<li data-submenu-id="submenu-king-colobus"><a href="#">生活服務(wù)</a></li>
</ul>
</div>
子菜單與主菜單對應(yīng),每一個子菜單的id屬性值必須與主菜單的data-submenu-id屬性值對應(yīng),子菜單內(nèi)容可以為任意html標簽代碼,p,img,audio都可以,格式如下:
<div id="submenu-patas" class="popover"> 任意html代碼 </div>
CSS
我們將主菜單dropdown-menu位置固定,子菜單popover默認隱藏,通過css3技術(shù)可以設(shè)置菜單陰影圓角效果,子菜單內(nèi)容的css可以根據(jù)需要自由發(fā)揮。
.active{position:relative}
.dropdown-menu { position: absolute;
z-index: 1000;float: left;
min-width: 120px;padding: 5px 0;margin: 2px 0 0;list-style: none;
background-color: #ffffff;border: 1px solid #ccc;
-webkit-border-radius: 6px;-moz-border-radius: 6px;border-radius: 6px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow: 0 5px 10px
rgba(0, 0, 0, 0.2);box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.dropdown-menu li{height:24px; line-height:24px; text-align:center}
.dropdown-menu li a{display:block}
.dropdown-menu li a:hover{color:#fff; text-decoration:none; background:#39f}
.popover {
position: absolute;top: 0;left: 0; z-index: 1010;display: none;
width: 320px;-webkit-border-radius: 6px;-moz-border-radius: 6px;border-radius: 6px;
-webkit-border-top-left-radius: 0px;-webkit-border-bottom-left-radius: 0px;
border-top-left-radius: 0px;border-bottom-left-radius: 0px;overflow: hidden;
padding: 1px 1px 1px 15px;text-align: left;white-space: normal;
background-color: #fff;border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow: 0 5px 10px
rgba(0, 0, 0, 0.2);box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
jQuery
下面我們隆重推出jquery.menu-aim.js,該插件是一款基于jQuery的菜單插件,插件作者關(guān)注了用戶體驗并精于算法,根據(jù)鼠標軌跡,將菜單切換效果實現(xiàn)得淋漓精致,該插件“超快”的反應(yīng)效果是不是讓我們有中“超爽”的感覺?插件地址:
使用$(element).menuAim()調(diào)用jquery.menu-aim.js,當鼠標觸發(fā)主菜單時調(diào)用自定義函數(shù)activateSubmenu(),當離開主菜單時調(diào)用自定義函數(shù)deactivateSubmenu()。
$(function(){
$(".dropdown-menu").menuAim({
activate: activateSubmenu,//觸發(fā)主菜單,顯示子菜單
deactivate: deactivateSubmenu //離開主菜單,隱藏子菜單
});
});
如上調(diào)用就可以完成子菜單間的快速切換,jquery.menu-aim.js還提供其他幾種方法,enter()和exit(),都是控制鼠標移入移出、調(diào)用函數(shù)等。
接下來,我們寫上自定義函數(shù)
var $menu = $(".dropdown-menu");
function activateSubmenu(row) {
var $row = $(row),
submenuId = $row.data("submenuId"),
$submenu = $("#" + submenuId),
offset = $menu.offset(),
height = $menu.outerHeight(),
width = $menu.outerWidth();
$submenu.css({ //設(shè)置子菜單樣式
display: "block", //顯示子菜單
top: offset.top,
left: offset.left + width - 5,
height: height - 4
});
//設(shè)置主菜單樣式(鼠標滑向主菜單時)
$row.find("a").addClass("maintainHover");
}
function deactivateSubmenu(row) {
var $row = $(row),
submenuId = $row.data("submenuId"),
$submenu = $("#" + submenuId);
$submenu.css("display", "none"); //隱藏子菜單
$row.find("a").removeClass("maintainHover");恢復(fù)主菜單樣式
}
怎么樣,你也可以做一個amazon.cn式的菜單效果了,以上就是本文的全部內(nèi)容,希望本文對大家學習jquery有所幫助。
- jquery實現(xiàn)簡單Tab切換菜單效果
- jQuery實現(xiàn)Tab菜單滾動切換的方法
- jQuery實現(xiàn)帶幻燈的tab滑動切換風格菜單代碼
- 基于jQuery插件實現(xiàn)環(huán)形圖標菜單旋轉(zhuǎn)切換特效
- jQuery實現(xiàn)菜單式圖片滑動切換
- 7款風格新穎的jQuery/CSS3菜單導航分享
- jQuery+CSS實現(xiàn)菜單滑動伸展收縮(仿淘寶)
- jquery+css+ul模擬列表菜單具體實現(xiàn)思路
- 純CSS打造的導航菜單(附j(luò)query版)
- jQuery+css實現(xiàn)的藍色水平二級導航菜單效果代碼
- jQuery+CSS實現(xiàn)簡單切換菜單示例
相關(guān)文章
jQuery插件開發(fā)精品教程(讓你的jQuery更上一個臺階)
這篇jQuery插件開發(fā)教程是小編見過的最詳細的了,每個解說都很好,對于想做增強插件的朋友確實不錯的參考資料,特分享下,方便需要的朋友2015-11-11
jQuery實現(xiàn)控制文字內(nèi)容溢出用省略號(…)表示的方法
這篇文章主要介紹了jQuery實現(xiàn)控制文字內(nèi)容溢出用省略號(…)表示的方法,涉及jQuery針對字符串及樣式操作相關(guān)技巧,需要的朋友可以參考下2016-02-02
input 輸入框獲得/失去焦點時隱藏/顯示文字(jquery版)
input輸入框在獲得或失去焦點時隱藏或顯示文字,這樣的焦點效果想必很多朋友在填寫form表格的時候都曾見識過吧,本文使用jquery實現(xiàn)以下,感興趣的朋友可以參考下哈2013-04-04
jquery復(fù)選框checkbox實現(xiàn)刪除前判斷
頁面有很多數(shù)據(jù),可以刪除一條或多條,刪除前判斷是否選中至少一條,否則提示,具體示例如下,需要的朋友可以參考下2014-04-04

