上一篇博文提到了二級下拉式菜單是用HTML和CSS實現的,我們這一篇來用JavaScript腳本實現下拉菜單的顯
示和隱藏。使用?JavaScript方法實現我們需要用的知識有:
1)JS事件:onmouseover鼠標經過事件和onmouseout鼠標離開事件。
2)JS基礎語法:使用function關鍵字定義函數。
3)DOM編程:getElementsByTagName()方法。
那么接下來就是我們制作的流程:
1)隱藏二級菜單:設置CSS樣式,讓二級菜單隱藏。
2)編寫顯示子菜單showsub()函數:使用getElementsByTagName獲取二級菜單項;通過style.display設置二級菜單顯示。
3)編寫隱藏子菜單hidesub()函數:使用getElementsByTagName獲取二級菜單項;通過style.display設置二級菜單隱藏。
4)添加鼠標事件:給有二級菜單的一級菜單添加鼠標事件,并調用showsub()/hidesub()函數,實現鼠標經過一級菜單,二級菜單顯示和隱藏。
5)做瀏覽器兼容性檢測,至少五個瀏覽器。IE7,8,9,火狐,谷歌,2345瀏覽器等。
HTML代碼:
~~~
<span style="font-size:18px;"><!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>
<!--引入的外部CSS樣式文件-->
<link rel="stylesheet" type="text/css" href="style.css" />
<!--引入的外部JS腳本文件-->
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<div id="nav" class="nav">
<ul>
<li><a href="#">網站首頁</a></li>
<li onmouseover="showsub(this)" onmouseout="hidesub(this)"><a href="#">課程大廳</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">Ajax</a></li>
</ul>
</li>
<li onmouseover="showsub(this)" onmouseout="hidesub(this)"><a href="#">學習中心</a>
<ul>
<li><a href="#">視頻學習</a></li>
<li><a href="#">案例學習</a></li>
<li><a href="#">交流平臺</a></li>
</ul>
</li>
<li><a href="#">經典案例</a></li>
<li><a href="#">關于我們</a></li>
</ul>
</div>
</body>
</html>
</span>
~~~
外部CSS樣式表style.css文件代碼:
~~~
<span style="font-size:18px;">/*CSS全局設置*/
*{
margin:0;
padding:0;
}
.nav{
background-color:#EEEEEE;
height:40px;
width:450px;
margin:0 auto;
}
ul{
list-style:none;
}
ul li{
float:left;
line-height:40px;
text-align:center;
}
a{
text-decoration:none;
color:#000000;
display:block;
width:90px;
height:40px;
}
a:hover{
background-color:#666666;
color:#FFFFFF;
}
ul li ul li{
float:none;
background-color:#EEEEEE;
}
ul li ul{
display:none;
}
/*為了兼容IE7設置的CSS樣式,但是又必須寫在a:hover前面*/
ul li ul li a:link,ul li ul li a:visited{
background-color:#EEEEEE;
}
ul li ul li a:hover{
background-color:#009933;
}
</span>
~~~
外部JS腳本script.js文件代碼:
~~~
<span style="font-size:18px;">function showsub(li){
var submenu=li.getElementsByTagName("ul")[0];
submenu.style.display="block";
}
function hidesub(li){
var submenu=li.getElementsByTagName("ul")[0];
submenu.style.display="none";
}</span>
~~~
效果展示:
1.初始化狀態或鼠標離開顯示為橫向一級菜單:

2.鼠標滑過有二級下拉菜單的元素時顯示下拉菜單:

3.顯示的下拉菜單中的鏈接樣式:
