jQuery實(shí)現(xiàn)導(dǎo)航高亮的方法【附demo源碼下載】
本文實(shí)例講述了jQuery實(shí)現(xiàn)導(dǎo)航高亮的方法。分享給大家供大家參考,具體如下:
導(dǎo)航是我們頁(yè)面中一般都需要的一個(gè)元素,它可以說(shuō)是一個(gè)站點(diǎn)必用的元素,沒(méi)有了導(dǎo)航,會(huì)讓人找不著北,但有時(shí)候,僅僅有了導(dǎo)航還不夠,還需要在當(dāng)前的頁(yè)面中標(biāo)明當(dāng)前是在哪一個(gè)類別里面,這時(shí)候就有了不同的實(shí)現(xiàn)的方法,也就有了下文的一些介紹。
通常,我們?cè)谧鰧?dǎo)航的時(shí)候,都是由程序直接輸出當(dāng)前的頁(yè)面的的高亮狀態(tài)的樣式,我們只需要定義好輸出的類的高亮的樣式就可以了,這樣是最直接有效也是最常用的方法。
像Wordpress的導(dǎo)航輸出,會(huì)自動(dòng)輸出一個(gè)高亮的類的“current”,如下圖:

但有時(shí)候,我們?cè)诔绦蚶镞M(jìn)行包含的文件的時(shí)候,如統(tǒng)一的頭部和底部,這時(shí)候統(tǒng)一的頭部中有一個(gè)這樣的導(dǎo)航,如果粗心的程序員沒(méi)有無(wú)法給目前所在的目錄或文件輸出一個(gè)高亮的類的時(shí)候,或者有時(shí)候?qū)崿F(xiàn)起來(lái)非常麻煩的時(shí)候,能不能有一些其實(shí)的方法來(lái)實(shí)現(xiàn)和補(bǔ)救呢?
答案是肯定的,那就是JS。
但這個(gè)根據(jù)怎樣的規(guī)則給當(dāng)前的這個(gè)目錄或文件實(shí)現(xiàn)高亮呢?
最近剛好也在項(xiàng)目中遇到這個(gè)問(wèn)題,所以通過(guò)一番的折騰,實(shí)現(xiàn)了效果。
我的思路是這樣的,先找到當(dāng)前的URL的路徑,然后URL中的最后的一個(gè)文件名或目錄和導(dǎo)航中元素的某個(gè)屬性來(lái)進(jìn)行匹配,匹配成功的就加上高亮的類,把別的不是當(dāng)前匹配的類的高亮樣式去掉,不成功的時(shí)候就返回到首頁(yè)這個(gè)來(lái)進(jìn)行高亮。
于是就有了下面的代碼,經(jīng)試驗(yàn),無(wú)論是文件或是目錄都可匹配成功:
THML:
<ul class="menu" id="menu"> <li><a title="首頁(yè)" href="index.html" rel="index.html">首頁(yè)</a></li> <li ><a title="作品集" href="works.html" rel="works.html">作品集</a></li> <li><a title="前端庫(kù)" href="web.html" rel="web.html">前端庫(kù)</a></li> </ul>
js代碼:
<script type="text/javascript">
var urlstr = location.href;
var urlstatus=false;
$("#menu a").each(function () {
if ((urlstr + '/').indexOf($(this).attr('rel')) > -1&&$(this).attr('rel')!='') {
$(this).addClass('cur'); urlstatus = true;
} else {
$(this).removeClass('cur');
}
});
if (!urlstatus) {$("#menu a").eq(0).addClass('cur'); }
</script>
不要忘了,該腳本是基于Jquery的。
完整實(shí)例代碼點(diǎn)擊此處本站下載。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery窗口操作技巧總結(jié)》、《jQuery拖拽特效與技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jquery中Ajax用法總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常見(jiàn)經(jīng)典特效匯總》、《jQuery動(dòng)畫(huà)與特效用法總結(jié)》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- 基于jquery實(shí)現(xiàn)導(dǎo)航菜單高亮顯示(兩種方法)
- jQuery制作的別致導(dǎo)航有陰影背景高亮模式窗口
- Jquery 高亮顯示文本中重要的關(guān)鍵字
- jquery實(shí)現(xiàn)帶復(fù)選框的表格行選中刪除時(shí)高亮顯示
- JQuery操作表格(隔行著色,高亮顯示,篩選數(shù)據(jù))
- JQuery文本框高亮顯示插件代碼
- jQuery實(shí)現(xiàn)點(diǎn)擊后標(biāo)記當(dāng)前菜單位置(背景高亮菜單)效果
- Jquery如何實(shí)現(xiàn)點(diǎn)擊時(shí)高亮顯示代碼
- jQuery實(shí)現(xiàn)鼠標(biāo)滑過(guò)遮罩并高亮顯示效果
- jQuery實(shí)現(xiàn)高亮顯示網(wǎng)頁(yè)關(guān)鍵詞的方法
- Jquery 點(diǎn)擊按鈕自動(dòng)高亮實(shí)現(xiàn)原理及代碼
- JQuery 浮動(dòng)導(dǎo)航欄實(shí)現(xiàn)代碼
- 簡(jiǎn)單的jquery左側(cè)導(dǎo)航欄和頁(yè)面選中效果
- jQuery 實(shí)現(xiàn)側(cè)邊浮動(dòng)導(dǎo)航菜單效果
相關(guān)文章
JQuery中$.ajax()方法參數(shù)詳解及應(yīng)用
JQuery中$.ajax()方法想必大家并不陌生吧,在本文將為大家介紹下其參數(shù)及應(yīng)用示例,感興趣的朋友不要錯(cuò)過(guò)2013-12-12
基于jQuery的簡(jiǎn)單九宮格實(shí)現(xiàn)代碼
聽(tīng)朋友說(shuō)要作個(gè)九宮格,我也就隨便寫(xiě)一個(gè),等待完善2012-08-08
jquery學(xué)習(xí)筆記之無(wú)new構(gòu)建詳解
大部分人使用 jQuery 的時(shí)候都是使用第一種無(wú) new 的構(gòu)造方式,直接 $('') 進(jìn)行構(gòu)造,這也是 jQuery 十分便捷的一個(gè)地方。這篇文章主要給大家介紹了關(guān)于jquery學(xué)習(xí)筆記之無(wú)new構(gòu)建的相關(guān)資料,需要的朋友們下面來(lái)一起看看吧。2017-12-12
jquery判斷當(dāng)前瀏覽器的實(shí)現(xiàn)代碼
這篇文章主要介紹了jquery判斷當(dāng)前瀏覽器的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-11-11
如何使用jquery控制CSS樣式,并且取消Css樣式(如背景色,有實(shí)例)
使用jquery控制CSS樣式,并且取消Css樣式的一個(gè)簡(jiǎn)單小實(shí)例,需要的朋友可以參考下2013-07-07
總結(jié)jQuery插件開(kāi)發(fā)中的一些要點(diǎn)
這篇文章主要介紹了總結(jié)jQuery插件開(kāi)發(fā)中的一些要點(diǎn),包括命名空間與事件events等重點(diǎn)和難點(diǎn)部分的講解,要的朋友可以參考下2016-05-05
節(jié)點(diǎn)的插入之a(chǎn)ppend()和appendTo()的用法介紹
說(shuō)到節(jié)點(diǎn)的插入想必大家對(duì)append()和appendTo()的用法并不陌生吧,下面有個(gè)不錯(cuò)的是,希望對(duì)大家學(xué)習(xí)有所幫助2014-01-01
jquery獲取ASP.NET服務(wù)器端控件dropdownlist和radiobuttonlist生成客戶端HTML標(biāo)簽
jquery獲取ASP.NET服務(wù)器端控件dropdownlist和radiobuttonlist生成客戶端HTML標(biāo)簽后的value和text值2010-06-06

