基于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>我愛(ài)學(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è)分類下可能有多篇新聞.那么逆向的來(lái)說(shuō),每一篇新聞或者分類都對(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)容就是通過(guò)兩種方式給大家介紹基于jquery實(shí)現(xiàn)導(dǎo)航菜單高亮顯示,希望對(duì)大家有所幫助。
- jQuery實(shí)現(xiàn)菜單欄導(dǎo)航效果
- 基于jQuery實(shí)現(xiàn)左側(cè)菜單欄可折疊功能
- 最常見(jiàn)的左側(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)擊向下展開(kāi)菜單項(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)文章
Firefox/Chrome/Safari的中可直接使用$/$$函數(shù)進(jìn)行調(diào)試
偶然發(fā)現(xiàn)的,頁(yè)面中沒(méi)有引入Prototype和jQuery。控制臺(tái)中敲$卻發(fā)現(xiàn)是一個(gè)函數(shù)。又試著敲$$,也是個(gè)function2012-02-02
讓iframe子窗體取父窗體地址欄參數(shù)(querystring)
突然用到,記錄一下,對(duì)地址欄字符串用正則處理最好,有時(shí)間研究一下。 主要是思路。2009-10-10
超強(qiáng)的IE背景圖片閃爍(抖動(dòng))的解決辦法
超強(qiáng)的IE背景圖片閃爍(抖動(dòng))的解決辦法...2007-09-09
關(guān)于ligerui子頁(yè)面關(guān)閉后,父頁(yè)面刷新,重新加載的方法
今天小編就為大家分享一篇關(guān)于ligerui子頁(yè)面關(guān)閉后,父頁(yè)面刷新,重新加載的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
JS 輸入字?jǐn)?shù)判斷實(shí)現(xiàn)代碼
判斷輸入的字?jǐn)?shù)2009-08-08
javascript獲取網(wǎng)頁(yè)各種高寬及位置的方法總結(jié)
下面小編就為大家?guī)?lái)一篇javascript獲取網(wǎng)頁(yè)各種高寬及位置的方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
js實(shí)現(xiàn)簡(jiǎn)潔的滑動(dòng)門菜單(選項(xiàng)卡)效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)潔的滑動(dòng)門菜單(選項(xiàng)卡)效果代碼,涉及javascript鼠標(biāo)事件操作頁(yè)面元素樣式切換的實(shí)現(xiàn)技巧,簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-09-09

