基于jquery實(shí)現(xiàn)導(dǎo)航菜單高亮顯示(兩種方法)
項(xiàng)目需求:
實(shí)現(xiàn)原理:當(dāng)選中當(dāng)前元素時(shí),給當(dāng)前元素添加樣式,同級(jí)元素移除樣式。
點(diǎn)擊不同的導(dǎo)航菜單實(shí)現(xiàn)當(dāng)前點(diǎn)擊的菜單是高亮的,點(diǎn)擊導(dǎo)航下面的某個(gè)分類,分類所屬的導(dǎo)航也必須是高亮的,點(diǎn)擊某一篇文章,文章所屬的導(dǎo)航菜單也必須是高亮的.
效果圖如下:

示例代碼一:
具體示例代碼如下:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>我愛學(xué)習(xí)</title>
<style>
body,ul,ol,li,div,p{margin:0px;padding:0px;}
ul{list-style-type:none;border:1px solid blue;background:#4f5b93;height:45px;}
ul li{float:left;heihgt:45px;line-height:45px;width:100px;text-align:center;}
ul li a:link,a:visited{color:#fff;text-decoration:none;}
.act{background:#ff6600;}
</style>
<script src="../jquery.js"></script>
<script>
$(function(){
$('ul li').eq(0).addClass("act");
$('ul li').each(function(){
$(this).click(function(){
$(this).addClass("act").siblings().removeClass("act");
})
})
})
</script>
</head>
<body>
<ul>
<li><a >首頁(yè)</a></li>
<li><a >隨筆</a></li>
<li><a >素材</a></li>
<li><a >編程</a></li>
</ul>
</body>
</html>
示例代碼二:
在菜單層的鏈接加上一個(gè)rel屬性,保存href屬性即:
<div id="menu" class="main-nav">
<dl>
<dt><a href="/C000001916" class="current">首頁(yè)<span class="mnl"></span></a></dt>
</dl>
<dl>
<dt><a href="/C000001919?lmbm=1" <span style="color: #ff0000;">rel="/C000001919?lmbm=1"</span>>新聞中心<span class="mnl"></span></a></dt>
<dd class="sn-c">
<a href="#">產(chǎn)品理念2</a>
<em>|</em>
<a href="#">發(fā)展歷程</a>
<em>|</em>
<a href="#">應(yīng)用范圍</a>
<em>|</em>
<a href="#">技術(shù)架構(gòu)</a>
</dd>
</dl>
<dl>
<dt><a href="/C000001919?lmbm=2" <span style="color: #ff0000;">rel="/C000001919?lmbm=2"</span>>產(chǎn)品介紹<span class="mnl"></span></a></dt>
<dd class="sn-c sn3">
<a href="#">產(chǎn)品理念</a>
<em>|</em>
<a href="#">發(fā)展歷程3</a>
<em>|</em>
<a href="#">應(yīng)用范圍</a>
<em>|</em>
<a href="#">技術(shù)架構(gòu)</a>
</dd>
</dl>
</div>
然后利用瀏覽器地址欄中的URL和rel對(duì)比,如果相等就在當(dāng)前的<a>標(biāo)簽加上class,同時(shí)移除其它<a>標(biāo)簽的class.<script type="text/javascript">
var urlstr = location.href; //獲取瀏覽器的url
var urlstatus=false; //標(biāo)記
//遍歷導(dǎo)航div
$("#menu a").each(function () {
//判斷導(dǎo)航里面的rel和url地址是否相等
if ((urlstr + '/').indexOf($(this).attr('rel')) > -1&&$(this).attr('rel')!='') {
$(this).addClass('cur'); urlstatus = true;
} else {
$(this).removeClass('cur');
}
});
//當(dāng)前樣式保持
if (!urlstatus) {$("#menu a").eq(0).addClass('cur'); }
</script>
這個(gè)也能基本實(shí)現(xiàn)效果,但是如果在導(dǎo)航下如果有分類,如圖.這樣分類url和導(dǎo)航的url就不能匹配了,然后新聞的url和導(dǎo)航的url也不能匹配.所以還是有點(diǎn)扯淡.....那怎么辦呢?
所以我的思路是這樣的
既然url不一樣,那就找導(dǎo)航-->分類-->新聞之間的關(guān)系了.他們的對(duì)應(yīng)關(guān)系是一個(gè)導(dǎo)航下可能有多個(gè)分類,一個(gè)分類下可能有多篇新聞.那么逆向的來說,每一篇新聞或者分類都對(duì)應(yīng)一個(gè)導(dǎo)航.那么在對(duì)應(yīng)的的分類頁(yè)面和新聞頁(yè)面都定義一個(gè)變量就是導(dǎo)航標(biāo)識(shí).然后修改導(dǎo)航<div>的<a>標(biāo)簽的rel屬性.該屬性與該變量對(duì)比,如果一樣就改當(dāng)前的class.
以上內(nèi)容就是通過兩種方式給大家介紹基于jquery實(shí)現(xiàn)導(dǎo)航菜單高亮顯示,希望對(duì)大家有所幫助。
- jQuery實(shí)現(xiàn)菜單欄導(dǎo)航效果
- 基于jQuery實(shí)現(xiàn)左側(cè)菜單欄可折疊功能
- 最常見的左側(cè)分類菜單欄jQuery實(shí)現(xiàn)代碼
- jquery仿京東導(dǎo)航/仿淘寶商城左側(cè)分類導(dǎo)航下拉菜單效果
- jQuery 實(shí)現(xiàn)側(cè)邊浮動(dòng)導(dǎo)航菜單效果
- jquery實(shí)現(xiàn)點(diǎn)擊向下展開菜單項(xiàng)(伸縮導(dǎo)航)效果
- jQuery實(shí)現(xiàn)的導(dǎo)航下拉菜單效果示例
- JQuery 寫的個(gè)性導(dǎo)航菜單
- jQuery仿京東商城樓梯式導(dǎo)航定位菜單
- jquery實(shí)現(xiàn)網(wǎng)頁(yè)左側(cè)導(dǎo)航菜單欄
相關(guān)文章
JS簡(jiǎn)單獲取及顯示當(dāng)前時(shí)間的方法
這篇文章主要介紹了JS簡(jiǎn)單獲取及顯示當(dāng)前時(shí)間的方法,涉及javascript針對(duì)日期與時(shí)間的獲取與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
JavaScript 處理樹數(shù)據(jù)結(jié)構(gòu)的方法示例
這篇文章主要介紹了JavaScript 處理樹數(shù)據(jù)結(jié)構(gòu)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06
JavaScript實(shí)現(xiàn)拖拽排序的方法詳解
可拖拽排序的菜單效果大家想必都很熟悉,本次我們通過一個(gè)可拖拽排序的九宮格案例來演示其實(shí)現(xiàn)原理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05
JS將所有對(duì)象s的屬性復(fù)制給對(duì)象r(原生js+jquery)
這篇文章主要介紹了js中將所有對(duì)象s的屬性復(fù)制給對(duì)象r的方法,原生js+jquery分別實(shí)現(xiàn)2014-01-01
JavaScript原生對(duì)象之String對(duì)象的屬性和方法詳解
這篇文章主要介紹了JavaScript原生對(duì)象之String對(duì)象的屬性和方法詳解,本文講解了length、charAt()、charCodeAt()、concat()、indexOf()、lastIndexOf()等方法屬性,需要的朋友可以參考下2015-03-03
JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動(dòng)文字的方法
這篇文章主要介紹了JS實(shí)現(xiàn)把鼠標(biāo)放到鏈接上出現(xiàn)滾動(dòng)文字的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2016-04-04

