jQuery實作多層下拉式選單jDropMenu的方法_jquery
本文實例講述了jQuery實作多層下拉式選單jDropMenu的方法。分享給大家供大家參考。具體如下:
這裡介紹的jQuery多層下拉式選單導覽-多層下拉式選單,英文名叫 DropDown Menu。透過 each() 遍歷新增對應的處理事件 mouseover,mouseout 和 tab 操作的支援。這個效果是我們平常最常見的一個效果之一,也是一個十分實用的一個 JavaScript 特效。例如我的 BlueNight 主題的主導航就使用了多層下拉式選單的這個效果。
運作效果截圖如下:
線上示範網址如下:
http://demo.jb51.net/js/2015/jquery-nlevel-down-show-jdropmenu-codes/
具體程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jDropMenu - jQuery 多级下拉菜单插件</title> <style type="text/css"> #top-navigation { margin: 10px auto 600px; width:960px; height:36px; } .menu { margin: 0; } .menu-item { position: relative; z-index: 2; float: left; margin-left: 3px; font-size: 14px; width: 115px; line-height: 36px; list-style-type: none; text-align: center; display: inline; } .menu .has-sub-menu { border-top: 3px solid #369; line-height: 33px; } .sub-menu .has-sub-menu { border-top: none; line-height: 36px; border-right: 3px solid #369; width: 112px; } .menu-item a:link, .menu-item a:visited, .menu-item a:hover { font-weight: bold; display: block; width: 100%; background-color: #3B3939; color: #fff; overflow: hidden; } .menu-item a:hover { color: #009FBC; background-color: #FFF; text-decoration: none; } .menu-item .sub-menu { display: none; position: absolute; z-index: 3; top: 33px; left: 0; margin: 0; box-shadow: 0 3px 10px #333; width: 115px; } .sub-menu li { margin-left: 0; } .sub-menu .sub-menu { top: 0; left: 115px; z-index: 4; } </style> </head> <body> <div class="header"> <h1>jDropMenu - jQuery 多级下拉菜单插件</h1> </div> <div id="top-navigation"> <ul class="menu" id="menu-top-navigation"> <li class="menu-item"> <a href="#">Home</a> </li> <li class="menu-item has-sub-menu"> <a href="#">Frontend</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">XHTML</a> </li> <li class="menu-item"> <a href="#">CSS</a> </li> <li class="menu-item"> <a href="#">HTML5</a> </li> <li class="menu-item"> <a href="#">CSS 3</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JavaScript</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">DOM</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> <li class="menu-item"> <a href="#">Ajax</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JSON</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">XHTML</a> </li> <li class="menu-item"> <a href="#">CSS</a> </li> <li class="menu-item has-sub-menu"> <a href="#">HTML5</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">XHTML</a> </li> <li class="menu-item"> <a href="#">CSS</a> </li> <li class="menu-item"> <a href="#">HTML5</a> </li> <li class="menu-item"> <a href="#">CSS 3</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JavaScript</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">DOM</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> <li class="menu-item"> <a href="#">Ajax</a> </li> <li class="menu-item"> <a href="#">JSON</a> </li> </ul> </li> <li class="menu-item"> <a href="#">CSS 3</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JavaScript</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">DOM</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> <li class="menu-item"> <a href="#">Ajax</a> </li> <li class="menu-item"> <a href="#">JSON</a> </li> </ul> </li> </ul> </li> <li class="menu-item"> <a href="#">PHP</a> </li> <li class="menu-item has-sub-menu"> <a href="#">WordPress</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">WP Themes</a> </li> <li class="menu-item"> <a href="#">WP Plugins</a> </li> </ul> </li> <li class="menu-item"> <a href="#">SEO</a> </li> <li class="menu-item has-sub-menu"> <a href="#">Video</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">Downloads</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">XHTML</a> </li> <li class="menu-item"> <a href="#">CSS</a> </li> <li class="menu-item"> <a href="#">HTML5</a> </li> <li class="menu-item"> <a href="#">CSS 3</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JavaScript</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">DOM</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> <li class="menu-item"> <a href="#">Ajax</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JSON</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">XHTML</a> </li> <li class="menu-item"> <a href="#">CSS</a> </li> <li class="menu-item has-sub-menu"> <a href="#">HTML5</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">XHTML</a> </li> <li class="menu-item"> <a href="#">CSS</a> </li> <li class="menu-item"> <a href="#">HTML5</a> </li> <li class="menu-item"> <a href="#">CSS 3</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JavaScript</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">DOM</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> <li class="menu-item"> <a href="#">Ajax</a> </li> <li class="menu-item"> <a href="#">JSON</a> </li> </ul> </li> <li class="menu-item"> <a href="#">CSS 3</a> </li> <li class="menu-item has-sub-menu"> <a href="#">JavaScript</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item has-sub-menu"> <a href="#">YUI</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> </ul> </li> <li class="menu-item has-sub-menu"> <a href="#">DOM</a> <ul class="sub-menu"> <li class="menu-item"> <a href="#">jQuery</a> </li> <li class="menu-item"> <a href="#">YUI</a> </li> </ul> </li> <li class="menu-item"> <a href="#">Ajax</a> </li> <li class="menu-item"> <a href="#">JSON</a> </li> </ul> </li> </ul> </li> <li class="menu-item"> <a href="#">About Us</a> </li> </ul> </div> <script type="text/javascript" src="jquery-1.6.2.min.js"></script> <script type="text/javascript"> (function($){ $.fn.extend({ dropMenu: function(menuItem, subMenuItem){ var root = $(this), // 首先找到菜单(的根节点) CLS_HAS_MENU = 'has-sub-menu', isIE = $.browser.msie, // 是否为 IE 浏览器 version = $.browser.version; // 浏览器的版本 // 没有找到菜单则退出 // root.find(':first') 都是得到 document.getElementById('top-navigation') if (!root[0]) { return false; } // 默认的菜单标签为 li 标签(选择器) if (!menuItem) { menuItem = 'li'; } // 默认的子菜单标签为 ul 标签(选择器) if (!subMenuItem) { subMenuItem = 'ul'; } // $(root).find(menuItem) 找到导航菜单下所有的 li 节点 // 通过 each() 遍历添加相应的处理事件 mouseover,mouseout 和 tab 操作的支持 $(root).find(menuItem).each(function(i, li){ var curMenu = $(li), // 找到 li 下的第一个 a 标签,添加 tab 键的支持时需要用到的 curLink = curMenu.is('a') ? curMenu : $(curMenu.find('a:first')), // 找到当前 li 标签下的子菜单 subMenus = $(subMenuItem, curMenu), // 判断是否有子菜单节点 hasMenu = subMenus.length >= 1, // 当前 li 标签下的子菜单 curSubMenu = null, // 当前子菜单的最后一项(a 标签) curSubMenuLastItem = null, // 显示子菜单 show = function(){ // show sub menu 发现 IE6 中使用 show() 方无法显示二级以下的子菜单 // 所以很无赖的 hack 了一下 if (!isIE || (isIE && version > 6)) { curSubMenu.show(200); } else { curSubMenu.css('display', 'block'); } }, // 隐藏子菜单 hide = function(){ // hide sub menu if (!isIE || (isIE && version > 6)) { curSubMenu.hide(150); } else { curSubMenu.css('display', 'none'); } }; // 只在有子菜单的时候才做相应的处理 if (hasMenu) { // 无赖 WordPress 的输出没有 .has-sub-menu // 只要自己手动加上了 curMenu.addClass(CLS_HAS_MENU); // 找到当前 li 对应的子菜单,而不是把更次级的子菜单都找到 // 不习惯用 subMenus.get(0) curSubMenu = $(subMenus[0]); // 当前子菜单的最后一项(a 标签) curSubMenuLastItem = curSubMenu.find('a:last'); // mouse event curMenu.hover(show, hide); // key(tab key) event // 获得焦点是在当前 li 下的第一个A标签上处理 curLink.focus(show); // 失去焦点则需要是tab让子菜单的最后一个菜单项都走过了,才关闭子菜单 curSubMenuLastItem.blur(hide); } }); } }); $('#top-navigation').dropMenu(); })(jQuery); </script> <script type="text/javascript"> (function(){ var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-4473199-1']); _gaq.push(['_trackPageview']); (function(){ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); })(); </script> </body> </html>
希望本文所述對大家的jquery程式設計有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

WPS表格下拉選單怎麼做:選中要設定下拉選單的儲存格後,依序點擊“資料”,“有效性”,再在彈出的對話框中進行對應設定後,以此來下拉我們的選單。 WPS作為一款功能強大的辦公室軟體,其本身擁有的能夠編輯文件、統計數據表格等的功能,為許多需要和文字、數據等打交道的人們提供了很多的便利。而要熟練地運用WPS軟體為我們提供很多方便,就需要我們能夠先掌握住WPS軟體的各種非常基本的操作,在這篇文章裡,小編就給大家分享一下怎麼在用WPS軟體做在出的WPS表格中進行下拉式選單的操作。開啟WPS表格後,先用滑鼠選

jQuery引用方法詳解:快速上手指南jQuery是一個受歡迎的JavaScript庫,被廣泛用於網站開發中,它簡化了JavaScript編程,並為開發者提供了豐富的功能和特性。本文將詳細介紹jQuery的引用方法,並提供具體的程式碼範例,幫助讀者快速上手。引入jQuery首先,我們需要在HTML檔案中引入jQuery函式庫。可以透過CDN連結的方式引入,也可以下載

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:<

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,常會遇到需要判斷元素是否具有某個特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來輕鬆實現這項功能。以下將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,並附上具體的程式碼範例。方法一:使用attr()方法和typeof運算子//判斷元素是否具有特定屬

excel下拉選單自動關聯資料怎麼設定?我們在使用excel的時候會使用下拉式選單來快速的操作我們的數據,可也有不少的用戶們再問下拉式選單自動關聯數據要怎麼設定?以下就讓本站來為使用者來仔細的介紹一下excel下拉選單自動關聯資料設定方法吧。 excel下拉選單自動關聯資料設定方法 1、開啟Excel表格。 2、在空白儲存格中輸入一段關聯資料。 3、然後選取需要新增下拉清單的儲存格。 4、選單列點選【資料】-【資料驗證】。 5、驗證條件選擇【序列】。 6、點選圖中箭頭所指按鈕,選擇
