基于jQuery實現(xiàn)的菜單切換效果
這是一個非常流暢的菜單展示效果,應用在亞馬遜上,當你上下移動鼠標的時候,二級菜單會非常輕快的切換,沒有任何延時,給用戶如滑絲般的感覺。這種效果借助于一款jQuery插件menu-aim,本文將結(jié)合實例講解如何實現(xiàn)速度超快的菜單效果。
HTML
首先建立主菜單,我們借用電商網(wǎng)站常見的商品分類。其html結(jié)構代碼如下,其中我們用到了html5的data-submenu-id屬性設置,這在插件調(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="#">生活服務</a></li> </ul> </div>
子菜單與主菜單對應,每一個子菜單的id屬性值必須與主菜單的data-submenu-id屬性值對應,子菜單內(nèi)容可以為任意html標簽代碼,p,img,audio都可以,格式如下:
<div id="submenu-patas" class="popover"> 任意html代碼 </div>
CSS
我們將主菜單dropdown-menu位置固定,子菜單popover默認隱藏,通過css3技術可以設置菜單陰影圓角效果,子菜單內(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的菜單插件,插件作者關注了用戶體驗并精于算法,根據(jù)鼠標軌跡,將菜單切換效果實現(xiàn)得淋漓精致,該插件“超快”的反應效果是不是讓我們有中“超爽”的感覺?插件地址:
使用$(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({ //設置子菜單樣式 display: "block", //顯示子菜單 top: offset.top, left: offset.left + width - 5, height: height - 4 }); //設置主菜單樣式(鼠標滑向主菜單時) $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");恢復主菜單樣式 }
怎么樣,你也可以做一個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打造的導航菜單(附jquery版)
- jQuery+css實現(xiàn)的藍色水平二級導航菜單效果代碼
- jQuery+CSS實現(xiàn)簡單切換菜單示例
相關文章
基于jQuery插件jqzoom實現(xiàn)的圖片放大鏡效果示例
這篇文章主要介紹了基于jQuery插件jqzoom實現(xiàn)的圖片放大鏡效果,結(jié)合實例形式分析了jQuery插件jqzoom的使用方法與相關注意事項,需要的朋友可以參考下2017-01-01Jquery實現(xiàn)仿新浪微博獲取文本框能輸入的字數(shù)代碼
Jquery實現(xiàn)仿新浪微博獲取文本框所能輸入的字數(shù),感興趣的朋友可以研究一下代碼方便你折騰,希望本文提供的方法可以幫助到你2013-02-02基于jquery的內(nèi)容循環(huán)滾動小模塊(仿新浪微博未登錄首頁滾動微博顯示)
新浪微博未登錄首頁有一個“大家正在說”的模塊,動態(tài)滾動最新發(fā)布的微博。2011-03-03jQuery獲取所有父級元素及同級元素及子元素的方法(推薦)
這篇文章主要介紹了jQuery獲取所有父級元素及同級元素及子元素的方法,本文給大家介紹的非常詳細,具有參考借鑒價值 ,需要的朋友可以參考下2018-01-01jquery 鍵盤事件 keypress() keydown() keyup()用法總結(jié)
在本篇文章里小編給各位整理的是關于jquery 鍵盤事件 keypress() keydown() keyup()用法總結(jié)以及相關實例,需要的朋友們學習下。2019-10-10