JavaScript+CSS實(shí)現(xiàn)的可折疊二級(jí)菜單實(shí)例
本文實(shí)例講述了JavaScript+CSS實(shí)現(xiàn)的可折疊二級(jí)菜單。分享給大家供大家參考,具體如下:
.aspx文件:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NavigateMenu.aspx.cs" Inherits="NavigateMenu" %> <!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 runat="server"> <title>無(wú)標(biāo)題頁(yè)</title> <script type="text/javascript" src="JScript.js" ></script> <style type="text/css"> *{ margin: 0px; padding: 0px; border:0px; } #nav{ width: 200px; margin: 0px; padding: 0px; font-size: 14px; line-height: 30px; } #nav li{ width: 180px; padding-left: 20px; padding-bottom: 1px; list-style-image: none; list-style-type: none; background-color: #FFFFFF; float: left; } #nav a{ padding-left: 20px; background-color: #BFBFBF; display: block; text-decoration: none; } #nav a:hover { background-color: #FF9175; } #nav li ul{ padding-top: 1px; list-style-image: none; list-style-type: none; } #nav li li{ padding-left: 0px; } #nav ul a{ background-color: #EBEBEB; } .cx { display:none; visibility:hidden; } .ex { display:inherit; visibility:inherit; } </style> <script type="text/javascript" > window.onload=function() { statUp(); } </script> </head> <body> <form id="form1" runat="server"> <div id="Parent"> <ul id="nav"> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜單1</a> <ul> <li><a href="javascript:void(0);">菜單1_1</a></li> <li><a href="javascript:void(0);">菜單1_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜單2</a> <ul> <li><a href="javascript:void(0);">菜單2_1</a></li> <li><a href="javascript:void(0);">菜單2_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜單3</a> <ul> <li><a href="javascript:void(0);">菜單3_1</a></li> <li><a href="javascript:void(0);">菜單3_2</a></li> </ul> </li> </ul> </div> </form> </body> </html>
js文件:
function doMenu(obj){ var items=obj.parentNode.getElementsByTagName("ul"); var itmUl; if(items.length>0){ itmUl=items[0]; } if(itmUl.className!="ex"){ cxAll(); itmUl.className="ex"; }else{ itmUl.className="cx"; } } function statUp(){ cxAll(); } function cxAll(){ var ulDom=document.getElementById("nav"); var items=ulDom.getElementsByTagName("ul"); for (var i=0;i<items.length;i++) { items[i].className="cx"; } }
在這里需要注意的是延遲加載的問(wèn)題,由于頁(yè)面加載時(shí)需要執(zhí)行預(yù)處理操作statUp()方法,js單獨(dú)寫(xiě)成一個(gè)文件或 js寫(xiě)在<head>節(jié)點(diǎn)中時(shí),需要使用window.onload=function(){執(zhí)行語(yǔ)句;} 延遲加載,不然引用DOM中對(duì)象時(shí),會(huì)出現(xiàn)缺少對(duì)象 錯(cuò)誤提示。
別一種解決方法,直接將所有javaScript 寫(xiě)在</html>
<!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=gb2312" /> <title>菜單</title> <script type="text/javascript" src="Untitled-3.js"></script> <style> *{ margin: 0px; padding: 0px; border:0px; } #nav{ width: 200px; margin: 0px; padding: 0px; font-size: 14px; line-height: 30px; } #nav li{ width: 180px; padding-left: 20px; padding-bottom: 1px; list-style-image: none; list-style-type: none; background-color: #FFFFFF; float: left; } #nav a{ padding-left: 20px; background-color: #BFBFBF; display: block; text-decoration: none; } #nav a:hover { background-color: #FF9175; } #nav li ul{ padding-top: 1px; list-style-image: none; list-style-type: none; } #nav li li{ padding-left: 0px; } #nav ul a{ background-color: #EBEBEB; } .cx { display:none; visibility:hidden; } .ex { display:inherit; visibility:inherit; } </style> </head> <body> <div id="Parent"> <ul id="nav"> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜單1</a> <ul> <li><a href="javascript:void(0);">菜單1_1</a></li> <li><a href="javascript:void(0);">菜單1_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜單2</a> <ul> <li><a href="javascript:void(0);">菜單2_1</a></li> <li><a href="javascript:void(0);">菜單2_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜單3</a> <ul> <li><a href="javascript:void(0);">菜單3_1</a></li> <li><a href="javascript:void(0);">菜單3_2</a></li> </ul> </li> </ul> </div> </body> </html> <script type="text/javascript"> function doMenu(obj){ var items=obj.parentNode.getElementsByTagName("ul"); var itmUl; if(items.length>0){ itmUl=items[0]; } if(itmUl.className!="ex"){ cxAll(); itmUl.className="ex"; }else{ itmUl.className="cx"; } } function statUp(){ cxAll(); //var ulDom=document.getElementById("nav"); //var items=ulDom.getElementsByTagName("ul"); } function cxAll(){ var ulDom=document.getElementById("nav"); var items=ulDom.getElementsByTagName("ul"); for (var i=0;i<items.length;i++) { items[i].className="cx"; } } statUp(); </script>
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫(huà)特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 通用的二級(jí)菜單代碼(css+javascript)
- 簡(jiǎn)單實(shí)現(xiàn)js點(diǎn)擊展開(kāi)二級(jí)菜單功能
- vue.js 左側(cè)二級(jí)菜單顯示與隱藏切換的實(shí)例代碼
- 鼠標(biāo)經(jīng)過(guò)顯示二級(jí)菜單js特效
- js實(shí)現(xiàn)向右橫向滑出的二級(jí)菜單效果
- javascript鼠標(biāo)滑過(guò)顯示二級(jí)菜單特效
- vue.js實(shí)現(xiàn)二級(jí)菜單效果
- JS實(shí)現(xiàn)超精簡(jiǎn)響應(yīng)鼠標(biāo)顯示二級(jí)菜單代碼
- js實(shí)現(xiàn)二級(jí)菜單點(diǎn)擊顯示當(dāng)前內(nèi)容效果
- JavaScript實(shí)現(xiàn)二級(jí)菜單的制作
相關(guān)文章
bootstrap select2插件用ajax來(lái)獲取和顯示數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇bootstrap select2插件用ajax來(lái)獲取和顯示數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08通過(guò)JS運(yùn)行機(jī)制的角度說(shuō)說(shuō)作用域
這篇文章主要給大家介紹了如何通過(guò)JS運(yùn)行機(jī)制的角度說(shuō)說(shuō)作用域的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用JS作用域具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03JavaScript中利用構(gòu)造器函數(shù)模擬類的方法
JavaScript中沒(méi)有類的概念,所以其在對(duì)象創(chuàng)建方面與面向?qū)ο笳Z(yǔ)言有所不同。這篇文章主要介紹了JavaScript中利用構(gòu)造器函數(shù)模擬類的方法,文中給出了詳細(xì)的示例代碼和介紹,需要的朋友可以參考下,下面一起看看吧。2017-02-02基于JavaScript實(shí)現(xiàn)多級(jí)菜單效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)多級(jí)菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問(wèn)題
這篇文章主要介紹了詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07