JavaScript实现下拉菜单的显示和隐藏

我们这一篇来用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> 

以上就是本文的全部内容,希望对大家的学习有所帮助,实现下拉菜单效果。

(0)

相关推荐

  • 一个日期下拉菜单的js实现代码

    1.先看效果图: 2.js代码 year_month_day.js 复制代码 代码如下: year_month_day.js function DateSelector(selYear, selMonth, selDay) { this.selYear = selYear; this.selMonth = selMonth; this.selDay = selDay; this.selYear.Group = this; this.selMonth.Group = this; // 给年份.月份

  • 全国省市二级联动下拉菜单 js版

    本文实例为大家分享了js实现二级联动下拉菜单的具体代码,供大家参考,具体内容如下 js代码部分: /* * 全国二级城市联动 js版 */ function Dsy(){ this.Items = {}; } Dsy.prototype.add = function(id,iArray){ this.Items[id] = iArray; } Dsy.prototype.Exists = function(id){ if(typeof(this.Items[id]) == "undefined&

  • js实现全国省份城市级联下拉菜单效果代码

    本文实例讲述了js实现全国省份城市级联下拉菜单效果代码.分享给大家供大家参考.具体如下: 这是一个大家都知道的网页小功能,很常见,全国省份与城市级联菜单,采用Select下拉的方式选择数据,不过现在很多都Ajax了,貌似这种老形式已经过时了,不过在兼容性方面,仍然是不落后的. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-conv-city-xl-menu-style-codes/ 具体代码如下: <!DOCTYPE html PUBLI

  • js下拉菜单生成器dropMenu使用方法详解

    本文实例为大家分享了下拉菜单生成器dropMenu的使用方法,供大家参考,具体内容如 HTML <div class="input-group"> <span class="input-group-addon" style="width: 100px" >职级:</span> <input type="text" class="units form-control"

  • 三级下拉菜单的js实现代码

    三级下拉菜单的实现: 复制代码 代码如下: function list(idstr){ var name1="subtree"+idstr; var name2="img"+idstr; var objectobj=document.all(name1); var imgobj=document.all(name2); //alert(imgobj); if(objectobj.style.display=="none"){ for(i=1;i&

  • ASP+JS三级联动下拉菜单[调用数据库数据]

    网上三级菜单多是多但是代码都比较烦,我这个应该说还是比较直观的:'肯定先要连接数据库了,不用说了 '数据库结构 '类别1表名称:a  字段:ID,Name  说明:ID为主键是类别1的ID值,Name为类别1的名称 '类别2表名称:aa  字段:ID,aID,Name  说明:ID为主键是类别2的ID值,aID为所属类别1的ID值,Name为类别2的名称 '类别3表名称:aaa  字段:ID,aID,aaID,Name  说明:ID为主键是类别3的ID值,aID为所属类别1的ID值,aaID为所

  • css+js下拉菜单

    css菜单演示 0? " ": "") + "sfhover"; } sfEls[i].onMouseDown=function() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } sfEls[i].onMouseUp=function() { this.className+=(this.cla

  • Js点击弹出下拉菜单效果实例

    复制代码 代码如下: <STYLE type=text/css> .menu { BORDER-RIGHT: #006080 2px solid; BORDER-TOP: #80e0ff 2px solid; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #80e0ff 2px solid; BORDER-BOTTOM: #006080 2px solid; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR:

  • JavaScript 下拉菜单实现代码

    JavaScript下拉菜单 * { padding:0; margin:0; } body { font-family:verdana, sans-serif; font-size:small; } #navigation, #navigation li ul { list-style-type:none; } #navigation { margin:20px; } #navigation li { float:left; text-align:center; position:relati

  • JS实多级联动下拉菜单类,简单实现省市区联动菜单!

    作者:ybcola 这段js代码是很久以前的作品了,应该在一年以前吧!当时是在做一个农村人才管理系统的时候遇到的问题,因为系统要求参选择并通过后台添加省市区县甚至到乡镇村队,而在对人才的信息进行修改时要求用下拉列表进行选择,并且每个人才来源可能是省市,或者省市区县,或者一直取队都要选择!那时第一反映就是找网上是否有现成的代码,找到一个最常用的就是省市二级联动,那时那段js代码在网上随处可见,可是拿过来对我来说没用,因为我需要的是一个多级联通并且可以自由扩展的代码!最终还是自己动手写了JS代码.

随机推荐