jquery實(shí)現(xiàn)帶漸變淡入淡出并向右依次展開(kāi)的多級(jí)菜單效果實(shí)例
本文實(shí)例講述了jquery實(shí)現(xiàn)帶漸變淡入淡出并向右依次展開(kāi)的多級(jí)菜單效果。分享給大家供大家參考。具體如下:
這是一款核心基于jquery的多級(jí)導(dǎo)航菜單特效,橫向向右依次展開(kāi)菜單項(xiàng),當(dāng)然本菜單并不是完美的,因此沒(méi)有怎么美化,另外包括子菜單的上級(jí)菜單中缺少一個(gè)菜單標(biāo)記,這樣用戶有時(shí)候不知道哪個(gè)菜單中含有下級(jí)子菜單。不過(guò)添加這樣一個(gè)標(biāo)記似乎挺簡(jiǎn)單,你可以自己動(dòng)手添加吧。
運(yùn)行效果截圖如下:

在線演示地址如下:
http://demo.jb51.net/js/2015/jquery-right-show-menu-codes/
具體代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jquery多級(jí)下拉側(cè)導(dǎo)航amazonmenu</title>
<style>
.amazonmenu ul {
font: normal 12px Verdana;
list-style: none;
margin: 0;
padding: 0;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.amazonmenu ul li {
position: static;
}
.amazonmenu > ul {
background: white;
border: 1px solid gray;
border-radius: 5px;
width: 200px;
height: 400px;
position: relative;
}
.amazonmenu > ul li a {
color: black;
display: block;
overflow: auto;
padding: 10px 0;
position: relative;
text-decoration: none;
text-indent: 10px;
}
.amazonmenu > ul li.hassub > a::after {
border: 5px solid transparent;
border-left-color: gray;
content: '';
height: 0;
position: absolute;
right: 5px;
top: 35%;
width: 0;
}
.amazonmenu > ul li.hassub.selected > a::after {
border-left-color: red;
}
.amazonmenu ul li a:hover, .amazonmenu ul li.hassub.selected > a {
background: lightblue;
color: navy;
}
.amazonmenu ul li > div, .amazonmenu ul li > ul {
background: white;
border: 1px solid gray;
border-radius: 0 8px 8px 0;
box-shadow: 2px 2px 2px gray;
display: none;
font-weight: normal;
width: 300px;
height: 400px;
left: 100%;
padding: 10px;
position: absolute;
top: 0;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
z-index: 1000;
}
/* CSS Media queries */
@media screen and (max-width: 480px) {
.amazonmenu ul li > div, .amazonmenu ul li > ul {
left: 30px;
}
.amazonmenu > ul li.hassub.selected::after {
background: #eee;
content: '';
height: 100%;
left: 0;
opacity: .8;
pointer-events: none;
position: absolute;
top: 0;
width: 100%;
z-index: 1;
}
}
</style>
<script src="jquery-1.9.1.min.js"></script>
<script>
document.createElement("nav") // for IE
var amazonmenu = {
defaults: {
animateduration: 100,
showhidedelay: [100, 100],
hidemenuonclick: true
},
setting: {},
menuzindex: 1000,
touchenabled: !!('ontouchstart' in window) || !!('ontouchstart' in document.documentElement) || !!window.ontouchstart || !!window.Touch || !!window.onmsgesturechange || (window.DocumentTouch && window.document instanceof window.DocumentTouch),
showhide:function($li, action, setting){
clearTimeout( $li.data('showhidetimer') )
if (action == 'show'){
$li.data().showhidetimer = setTimeout(function(){
$li.addClass('selected')
$li.data('$submenu')
.data('fullyvisible', false)
.css({zIndex: amazonmenu.menuzindex++})
.fadeIn(setting.animateduration, function(){
$(this).data('fullyvisible', true)
})
}, this.setting.showhidedelay[0])
}
else{
$li.data().showhidetimer = setTimeout(function(){
$li.removeClass('selected')
$li.data('$submenu').stop(true, true).fadeOut(setting.animateduration)
var $subuls = $li.data('$submenu').find('.issub').css({display: 'none'})
if ($subuls.length > 0){
$subuls.data('$parentli').removeClass('selected')
}
}, this.setting.showhidedelay[1])
}
},
setupmenu:function($menu, setting){
var $topul = $menu.children('ul:eq(0)')
function addevtstring(cond, evtstr){
return (cond)? ' ' + evtstr : ''
}
$topul.find('li>div, li>ul').each(function(){ // find drop down elements
var $parentli = $(this).parent('li')
var $dropdown = $(this)
$parentli
.addClass('hassub')
.data({$submenu: $dropdown, showhidetimer: null})
.on('mouseenter click', function(e){
amazonmenu.showhide($(this), 'show', setting)
})
.on('click', function(e){
e.stopPropagation()
})
.children('a').on('click', function(e){
e.preventDefault() // prevent menu anchor links from firing
})
$dropdown
.addClass('issub')
.data({$parentli: $parentli})
.on('mouseleave' + addevtstring(setting.hidemenuonclick || amazonmenu.touchenabled, 'click'), function(e){
if ($(this).data('fullyvisible') == true){
amazonmenu.showhide($(this).data('$parentli'), 'hide', setting)
}
if (e.type == 'click'){
e.stopPropagation()
}
})
}) // end find
$topul.on('click', function(e){
if ($(this).data('fullyvisible') == true){
amazonmenu.showhide($(this).children('li.hassub.selected'), 'hide', setting)
}
})
var $mainlis = $topul.children('li.hassub').on('mouseleave', function(){
amazonmenu.showhide($(this), 'hide', setting)
})
},
init:function(options){
var $menu = $('#' + options.menuid)
this.setting = $.extend({}, options, this.defaults)
this.setting.animateduration = Math.max(50, this.setting.animateduration)
this.setupmenu($menu, this.setting)
}
}
</script>
<script>
jQuery(function(){
amazonmenu.init({
menuid: 'mysidebarmenu'
})
})
</script>
</head>
<body>
<nav id="mysidebarmenu" class="amazonmenu">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Folder 0</a>
<div>
<p>Browse our spring collection of useful webmaster tools and resources! </p>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">CSS類</a></li>
<li><a href="#">CSS庫(kù)</a>
<li><a href="#">網(wǎng)站工具</a>
<div>
<p><h3><a href="#">Image Optimizer</a></h3>Use this tool to easily optimize regular gifs, animated gifs. </p>
<p><h3><a href="#">我的收藏夾</a></h3>Generate a favicon using any regular image with this tool. </p>
<p><h3><a href="#">動(dòng)畫GIF</a></h3>Animated Gif Generator lets you easily create an animated gif。</p>
</div>
<li><a href="#">PHP程序設(shè)計(jì)</a></li>
</ul>
</div>
</li>
<li><a href="#">Folder 1</a>
<ul>
<li><a href="#">Sub Item 1.1</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a>
<ul>
<li>Sub Item 1.3.1</li>
<li>Sub Item 1.3.2</li>
<li>Sub Item 1.3.3</li>
</ul>
</li>
<li><a href="#">Sub Item 1.4</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
</ul>
</li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Folder 2</a>
<ul>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Sub Item 2.1</a></li>
</ul>
</li>
<li><a href="#">Item 4</a></li>
</ul>
</nav>
</body>
</html>
希望本文所述對(duì)大家的jquery程序設(shè)計(jì)有所幫助。
- jquery 淡入淡出效果的簡(jiǎn)單實(shí)現(xiàn)
- jQuery 淡入淡出、展開(kāi)收縮菜單實(shí)現(xiàn)代碼
- jquery實(shí)現(xiàn)通用版鼠標(biāo)經(jīng)過(guò)淡入淡出效果
- 基于jquery實(shí)現(xiàn)的文字淡入淡出效果
- 基于jQuery實(shí)現(xiàn)淡入淡出效果輪播圖
- 基于jQuery的淡入淡出可自動(dòng)切換的幻燈插件
- 基于jquery的淡入淡出選項(xiàng)卡效果代碼
- jQuery實(shí)現(xiàn)DIV層淡入淡出拖動(dòng)特效的方法
- jQuery實(shí)現(xiàn)圖片文字淡入淡出效果
- 原生js和jQuery實(shí)現(xiàn)淡入淡出輪播效果
- jQuery實(shí)現(xiàn)基本淡入淡出效果的方法詳解
相關(guān)文章
20款超贊的jQuery插件 Web開(kāi)發(fā)人員必備
jQuery的易擴(kuò)展性吸引了來(lái)自全球的開(kāi)發(fā)者來(lái)共同編寫jQuery插件。jQuery插件不僅能夠增強(qiáng)網(wǎng)站的可用性,有效地改善用戶體驗(yàn),還可以大大減少開(kāi)發(fā)時(shí)間。現(xiàn)在的jQuery插件很多,可以根據(jù)您的項(xiàng)目需要來(lái)選擇。這里為您介紹20款非常不錯(cuò)的插件。2011-02-02
jquery Ajax 全局調(diào)用封裝實(shí)例詳解
這篇文章主要介紹了jquery Ajax 全局調(diào)用封裝實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01
jQuery實(shí)現(xiàn)提示密碼強(qiáng)度的代碼
本文給大家介紹的是一個(gè)非常常見(jiàn)的功能,在輸入密碼的時(shí)候提示密碼的強(qiáng)度,本文使用jQuery來(lái)實(shí)現(xiàn),有需要的小伙伴可以參考下。2015-07-07
jQuery實(shí)現(xiàn)帶有動(dòng)畫效果的回到頂部和底部代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)帶有動(dòng)畫效果的回到頂部和底部代碼,涉及jQuery響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
jQuery模板技術(shù)和數(shù)據(jù)綁定實(shí)現(xiàn)代碼
如果你用過(guò)ASP.NET的數(shù)據(jù)綁定控件,也用過(guò)ASP或者JSP里那種通過(guò)輸出HTML元素在頁(yè)面上顯示數(shù)據(jù)的方法,你就知道ASP.NET數(shù)據(jù)綁定控件有多么方便。如果能夠?qū)⑼瑯拥墓δ茉跒g覽器端用HTML和JavaScript實(shí)現(xiàn),那該是多少美妙的事情。2010-05-05
基于jquery鼠標(biāo)點(diǎn)擊其它地方隱藏層的實(shí)例代碼
基于jquery鼠標(biāo)點(diǎn)擊其它地方隱藏層的實(shí)例代碼,需要的朋友可以參考下。2011-01-01
原生Ajax 和jQuery Ajax的區(qū)別示例分析
這篇文章主要介紹了原生Ajax 和Jq Ajax的區(qū)別示例分析,需要的朋友可以參考下2014-12-12

