JavaScript+CSS實(shí)現(xiàn)的可折疊二級菜單實(shí)例
本文實(shí)例講述了JavaScript+CSS實(shí)現(xiàn)的可折疊二級菜單。分享給大家供大家參考,具體如下:
.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>無標(biāo)題頁</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";
}
}
在這里需要注意的是延遲加載的問題,由于頁面加載時需要執(zhí)行預(yù)處理操作statUp()方法,js單獨(dú)寫成一個文件或 js寫在<head>節(jié)點(diǎn)中時,需要使用window.onload=function(){執(zhí)行語句;} 延遲加載,不然引用DOM中對象時,會出現(xiàn)缺少對象 錯誤提示。
別一種解決方法,直接將所有javaScript 寫在</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動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
- 通用的二級菜單代碼(css+javascript)
- 簡單實(shí)現(xiàn)js點(diǎn)擊展開二級菜單功能
- vue.js 左側(cè)二級菜單顯示與隱藏切換的實(shí)例代碼
- 鼠標(biāo)經(jīng)過顯示二級菜單js特效
- js實(shí)現(xiàn)向右橫向滑出的二級菜單效果
- javascript鼠標(biāo)滑過顯示二級菜單特效
- vue.js實(shí)現(xiàn)二級菜單效果
- JS實(shí)現(xiàn)超精簡響應(yīng)鼠標(biāo)顯示二級菜單代碼
- js實(shí)現(xiàn)二級菜單點(diǎn)擊顯示當(dāng)前內(nèi)容效果
- JavaScript實(shí)現(xiàn)二級菜單的制作
相關(guān)文章
bootstrap select2插件用ajax來獲取和顯示數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇bootstrap select2插件用ajax來獲取和顯示數(shù)據(jù)的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
JavaScript中利用構(gòu)造器函數(shù)模擬類的方法
JavaScript中沒有類的概念,所以其在對象創(chuàng)建方面與面向?qū)ο笳Z言有所不同。這篇文章主要介紹了JavaScript中利用構(gòu)造器函數(shù)模擬類的方法,文中給出了詳細(xì)的示例代碼和介紹,需要的朋友可以參考下,下面一起看看吧。2017-02-02
基于JavaScript實(shí)現(xiàn)多級菜單效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)多級菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問題
這篇文章主要介紹了詳解JavaScript 浮點(diǎn)數(shù)運(yùn)算的精度問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

