基于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 >首頁</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">首頁<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)的的分類頁面和新聞頁面都定義一個(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)頁左側(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-08JavaScript 處理樹數(shù)據(jù)結(jié)構(gòu)的方法示例
這篇文章主要介紹了JavaScript 處理樹數(shù)據(jù)結(jié)構(gòu)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06JavaScript實(shí)現(xiàn)拖拽排序的方法詳解
可拖拽排序的菜單效果大家想必都很熟悉,本次我們通過一個(gè)可拖拽排序的九宮格案例來演示其實(shí)現(xiàn)原理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05JS將所有對(duì)象s的屬性復(fù)制給對(duì)象r(原生js+jquery)
這篇文章主要介紹了js中將所有對(duì)象s的屬性復(fù)制給對(duì)象r的方法,原生js+jquery分別實(shí)現(xiàn)2014-01-01JavaScript原生對(duì)象之String對(duì)象的屬性和方法詳解
這篇文章主要介紹了JavaScript原生對(duì)象之String對(duì)象的屬性和方法詳解,本文講解了length、charAt()、charCodeAt()、concat()、indexOf()、lastIndexOf()等方法屬性,需要的朋友可以參考下2015-03-03JS實(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)操作頁面元素的相關(guān)技巧,需要的朋友可以參考下2016-04-04