jQuery?UI菜單部件Menu?Widget
帶有鼠標(biāo)和鍵盤交互的用于導(dǎo)航的可主題化菜單。
實(shí)例
一個(gè)簡(jiǎn)單的 jQuery UI 菜單(Menu)。
代碼
<ul id="menu"> <li><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a> <ul> <li><a href="#">Item 3-1</a></li> <li><a href="#">Item 3-2</a></li> <li><a href="#">Item 3-3</a></li> <li><a href="#">Item 3-4</a></li> <li><a href="#">Item 3-5</a></li> </ul> </li> <li><a href="#">Item 4</a></li> <li><a href="#">Item 5</a></li> </ul> <script> $( "#menu" ).menu(); </script>
菜單可以用任何有效的標(biāo)記創(chuàng)建,只要元素有嚴(yán)格的父/子關(guān)系且每個(gè)條目都有一個(gè)錨。最常用的元素是無(wú)序列表ul:
如果使用一個(gè)非 <ul>
/<li>
的結(jié)構(gòu),為菜單和菜單條目使用相同的元素,請(qǐng)使用 menus
選項(xiàng)來(lái)區(qū)分兩個(gè)元素,例如 menus: "div.menuElement"
。
可通過(guò)向元素添加 ui-state-disabled
class 來(lái)禁用任何菜單條目。
二、圖標(biāo)
為了向菜單添加圖標(biāo),請(qǐng)?jiān)跇?biāo)記中包含圖標(biāo):
<ul id="menu"> <li><a href="#"><span class="ui-icon ui-icon-disk"></span>Save</a></li> </ul>
菜單(Menu)會(huì)自動(dòng)向無(wú)圖標(biāo)的條目添加必要的內(nèi)邊距。
三、分隔符
分隔符元素可通過(guò)包含未鏈接的菜單條目來(lái)創(chuàng)建,菜單條目只能是空格/破折號(hào):
<ul id="menu"> <li><a href="#">Item 1</a></li> <li>-</li> <li><a href="#">Item 2</a></li> </ul>
四、鍵盤交互
- ENTER/SPACE:調(diào)用獲得焦點(diǎn)的菜單項(xiàng)的動(dòng)作,可能會(huì)打開(kāi)一個(gè)子菜單。
- UP:移動(dòng)教導(dǎo)到上一個(gè)菜單項(xiàng)。
- DOWN:移動(dòng)教導(dǎo)到下一個(gè)菜單項(xiàng)。
- RIGHT:如果可用,則打開(kāi)子菜單。
- LEFT:關(guān)閉當(dāng)前子菜單,移動(dòng)焦點(diǎn)到父菜單項(xiàng)。如果焦點(diǎn)不在子菜單上,則不進(jìn)行任何操作。
- ESCAPE:關(guān)閉當(dāng)前子菜單,移動(dòng)焦點(diǎn)到父菜單項(xiàng)。如果焦點(diǎn)不在子菜單上,則不進(jìn)行任何操作。
輸入一個(gè)字母,移動(dòng)焦點(diǎn)到以該字母開(kāi)頭的第一個(gè)條目。重復(fù)相同的字符會(huì)循環(huán)顯示匹配的條目。在一個(gè)時(shí)間內(nèi)輸入更多的字符則匹配所輸入的字符。
禁用項(xiàng)可獲得鍵盤焦點(diǎn),但是不允許任何交互。
五、主題化
菜單部件(Menu Widget)使用 jQuery UI CSS 框架 來(lái)定義它的外觀和感觀的樣式。如果需要使用菜單指定的樣式,則可以使用下面的 CSS class 名稱:
ui-menu
:菜單的外層容器。如果菜單包含圖標(biāo),該元素會(huì)另外帶有一個(gè)ui-menu-icons
class。ui-menu-item
:?jiǎn)蝹€(gè)菜單項(xiàng)的容器。ui-menu-icon
:通過(guò)icons
選項(xiàng)進(jìn)行子菜單圖標(biāo)設(shè)置。ui-menu-divider
:菜單項(xiàng)之間的分隔符元素。
六、快速導(dǎo)航
1、Options
- disabled:如果設(shè)置為
true
,則禁用該 menu(菜單)。 - icons:標(biāo)題要使用的圖標(biāo),與 jQuery UI CSS 框架提供的圖標(biāo)(Icons) 匹配。設(shè)置為 false 則不顯示圖標(biāo)。
- menus:作為menu(菜單)容器的元素的選擇器, 包括子菜單。
- position:標(biāo)識(shí)建議菜單的位置與相關(guān)的 input 元素有關(guān)系。
of
選項(xiàng)默認(rèn)為 input 元素,但是您可以指定另一個(gè)定位元素。 - role:自定義用于菜單和菜單項(xiàng)的ARIA roles(注:關(guān)于ARIA roles)。 在默認(rèn)情況下菜單項(xiàng)使用
"menuitem"
。 設(shè)置role
選項(xiàng)為了使"listbox"
使用"option"
作為菜單項(xiàng)。 如果設(shè)置為null
, 沒(méi)有roles將被設(shè)置,如果菜單是由被保持焦點(diǎn)另一個(gè)元件控制時(shí)候,非常有用。
2、Methods
- blur():從菜單中刪除焦點(diǎn), 重置任何激活樣式 和 觸發(fā)菜單的
blur
事件。 - collapse():關(guān)閉當(dāng)前活動(dòng)的子菜單。
- collapseAll():關(guān)閉全部打開(kāi)的子菜單。
- destroy():完全移除 menu 功能. 這將使元素返回到之前的初始化狀態(tài).
- disable():禁用 menu.
- enable():?jiǎn)⒂?menu.
- expand():打開(kāi)當(dāng)前活動(dòng)項(xiàng)目下的子菜單下,如果有的話。
- focus():激活一個(gè)特定的菜單項(xiàng), 首先,如果打開(kāi)存在的任何子菜單,并觸發(fā)菜單的
focus
事件。 - isFirstItem():返回一個(gè)布爾值,說(shuō)明當(dāng)前活動(dòng)項(xiàng)目是否菜單的第一項(xiàng)。
- isLastItem():返回一個(gè)布爾值,說(shuō)明當(dāng)前活動(dòng)項(xiàng)目是否菜單的最后一項(xiàng)。
- next():移動(dòng)激活狀態(tài)到下一個(gè)菜單項(xiàng)。
- nextPage():移動(dòng)激活狀態(tài)到第一個(gè)菜單項(xiàng)下的可滾動(dòng)菜單的底部,或最后一個(gè)項(xiàng)目,如果不可滾動(dòng)。
- option():
- previous():移動(dòng)激活狀態(tài)到上一個(gè)菜單項(xiàng)。
- previousPage():移動(dòng)激活狀態(tài)到第一個(gè)菜單項(xiàng)下的可滾動(dòng)菜單的頂部,或第一一個(gè)項(xiàng)目,如果不可滾動(dòng)。
- refresh():初始化還沒(méi)有被初始化的子菜單和菜單項(xiàng)。 新的菜單項(xiàng), 包括子菜單可以被添加到菜單 或 所有的菜單的內(nèi)容可以被替換 然后使用
refresh()
方法初始化。 - select():選擇當(dāng)前活動(dòng)的菜單項(xiàng), 折疊所有子菜單 并觸發(fā)菜單中的
select
事件。 - widget():返回一個(gè)包含 button 的
jQuery
對(duì)象。
3、Events
- blur( event, ui ):當(dāng)menu失去焦點(diǎn)時(shí)觸發(fā)這個(gè)事件。
- create( event, ui ):當(dāng)創(chuàng)建 menu 時(shí)觸發(fā)。
- focus( event, ui ):當(dāng)一個(gè)菜單獲得焦點(diǎn)或當(dāng)任意一個(gè)菜單項(xiàng)被激活時(shí)觸發(fā)這個(gè)事件。
- select( event, ui ):當(dāng)被選中的時(shí)候觸發(fā)該事件。
到此這篇關(guān)于jQuery UI菜單部件Menu Widget的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery學(xué)習(xí)筆記之jQuery+CSS3的瀏覽器兼容性
這篇文章主要介紹了jQuery學(xué)習(xí)筆記之jQuery+CSS3的瀏覽器兼容性的相關(guān)資料,需要的朋友可以參考下2015-01-01jquery 之 $().hover(func1, funct2)使用方法
.hover(func1, func2) 的效果等效于: mouseenter(), mouseleave()2012-06-06jQuery實(shí)現(xiàn)類似淘寶網(wǎng)圖片放大效果的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)類似淘寶網(wǎng)圖片放大效果的方法,實(shí)例分析了jquery實(shí)現(xiàn)圖片放大效果的方法,涉及jquery操作鼠標(biāo)事件及頁(yè)面元素屬性修改的相關(guān)技巧,需要的朋友可以參考下2015-07-07jQuery簡(jiǎn)單判斷值是否存在于數(shù)組中的方法示例
這篇文章主要介紹了jQuery簡(jiǎn)單判斷值是否存在于數(shù)組中的方法,涉及jQuery數(shù)組遍歷及基于$.inArray的元素判斷相關(guān)操作技巧,需要的朋友可以參考下2018-04-04jQuery EasyUI API 中文文檔 - NumberSpinner數(shù)值微調(diào)器使用介紹
jQuery EasyUI API 中文文檔 - NumberSpinner數(shù)值微調(diào)器使用,需要的朋友可以參考下。2011-10-10