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

HTML
首先建立主菜單,我們借用電商網(wǎng)站常見(jiàn)的商品分類(lèi)。其html結(jié)構(gòu)代碼如下,其中我們用到了html5的data-submenu-id屬性設(shè)置,這在插件調(diào)用時(shí)非常有用。
<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="#">美容護(hù)發(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="#">戶(hù)外汽車(chē)</a></li>
<li data-submenu-id="submenu-red-leaf"><a href="#">文化玩樂(lè)</a></li>
<li data-submenu-id="submenu-king-colobus"><a href="#">生活服務(wù)</a></li>
</ul>
</div>
子菜單與主菜單對(duì)應(yīng),每一個(gè)子菜單的id屬性值必須與主菜單的data-submenu-id屬性值對(duì)應(yīng),子菜單內(nèi)容可以為任意html標(biāo)簽代碼,p,img,audio都可以,格式如下:
<div id="submenu-patas" class="popover"> 任意html代碼 </div>
CSS
我們將主菜單dropdown-menu位置固定,子菜單popover默認(rèn)隱藏,通過(guò)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)注了用戶(hù)體驗(yàn)并精于算法,根據(jù)鼠標(biāo)軌跡,將菜單切換效果實(shí)現(xiàn)得淋漓精致,該插件“超快”的反應(yīng)效果是不是讓我們有中“超爽”的感覺(jué)?插件地址:
使用$(element).menuAim()調(diào)用jquery.menu-aim.js,當(dāng)鼠標(biāo)觸發(fā)主菜單時(shí)調(diào)用自定義函數(shù)activateSubmenu(),當(dāng)離開(kāi)主菜單時(shí)調(diào)用自定義函數(shù)deactivateSubmenu()。
$(function(){
$(".dropdown-menu").menuAim({
activate: activateSubmenu,//觸發(fā)主菜單,顯示子菜單
deactivate: deactivateSubmenu //離開(kāi)主菜單,隱藏子菜單
});
});
如上調(diào)用就可以完成子菜單間的快速切換,jquery.menu-aim.js還提供其他幾種方法,enter()和exit(),都是控制鼠標(biāo)移入移出、調(diào)用函數(shù)等。
接下來(lái),我們寫(xiě)上自定義函數(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è)置主菜單樣式(鼠標(biāo)滑向主菜單時(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ù)主菜單樣式
}
怎么樣,你也可以做一個(gè)amazon.cn式的菜單效果了,以上就是本文的全部?jī)?nèi)容,希望本文對(duì)大家學(xué)習(xí)jquery有所幫助。
- jquery實(shí)現(xiàn)簡(jiǎn)單Tab切換菜單效果
- jQuery實(shí)現(xiàn)Tab菜單滾動(dòng)切換的方法
- jQuery實(shí)現(xiàn)帶幻燈的tab滑動(dòng)切換風(fēng)格菜單代碼
- 基于jQuery插件實(shí)現(xiàn)環(huán)形圖標(biāo)菜單旋轉(zhuǎn)切換特效
- jQuery實(shí)現(xiàn)菜單式圖片滑動(dòng)切換
- 7款風(fēng)格新穎的jQuery/CSS3菜單導(dǎo)航分享
- jQuery+CSS實(shí)現(xiàn)菜單滑動(dòng)伸展收縮(仿淘寶)
- jquery+css+ul模擬列表菜單具體實(shí)現(xiàn)思路
- 純CSS打造的導(dǎo)航菜單(附j(luò)query版)
- jQuery+css實(shí)現(xiàn)的藍(lán)色水平二級(jí)導(dǎo)航菜單效果代碼
- jQuery+CSS實(shí)現(xiàn)簡(jiǎn)單切換菜單示例
相關(guān)文章
jQuery插件開(kāi)發(fā)精品教程(讓你的jQuery更上一個(gè)臺(tái)階)
這篇jQuery插件開(kāi)發(fā)教程是小編見(jiàn)過(guò)的最詳細(xì)的了,每個(gè)解說(shuō)都很好,對(duì)于想做增強(qiáng)插件的朋友確實(shí)不錯(cuò)的參考資料,特分享下,方便需要的朋友2015-11-11
jQuery實(shí)現(xiàn)控制文字內(nèi)容溢出用省略號(hào)(…)表示的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)控制文字內(nèi)容溢出用省略號(hào)(…)表示的方法,涉及jQuery針對(duì)字符串及樣式操作相關(guān)技巧,需要的朋友可以參考下2016-02-02
基于jQuery插件實(shí)現(xiàn)點(diǎn)擊小圖顯示大圖效果
這篇文章主要為大家詳細(xì)介紹了基于jQuery實(shí)現(xiàn)點(diǎn)擊小圖顯示大圖效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
input 輸入框獲得/失去焦點(diǎn)時(shí)隱藏/顯示文字(jquery版)
input輸入框在獲得或失去焦點(diǎn)時(shí)隱藏或顯示文字,這樣的焦點(diǎn)效果想必很多朋友在填寫(xiě)form表格的時(shí)候都曾見(jiàn)識(shí)過(guò)吧,本文使用jquery實(shí)現(xiàn)以下,感興趣的朋友可以參考下哈2013-04-04
利用div+jquery自定義滾動(dòng)條樣式的2種方法
可以設(shè)置左邊菜單項(xiàng)div的overflow-x:auto;overlfow-y:auto;這樣就會(huì)自動(dòng)生成了滾動(dòng)條,但是大家都知道自帶的不好看。接下來(lái)就是重點(diǎn)了,如何修改滾動(dòng)條的樣式呢?感興趣的朋友可以了解下本文2013-07-07
jquery復(fù)選框checkbox實(shí)現(xiàn)刪除前判斷
頁(yè)面有很多數(shù)據(jù),可以刪除一條或多條,刪除前判斷是否選中至少一條,否則提示,具體示例如下,需要的朋友可以參考下2014-04-04

