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


Posted in Javascript onJanuary 05, 2016

我们这一篇来用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浏览器等。

效果图:

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

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>

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

Javascript 相关文章推荐
JavaScript 判断浏览器类型及版本
Feb 21 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
Dec 29 Javascript
PHP中CURL的几个经典应用实例
Jan 23 Javascript
浅谈javascript中for in 和 for each in的区别
Apr 23 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
如何利用JSHint减少JavaScript的错误
Aug 23 Javascript
详解用node搭建简单的静态资源管理器
Aug 09 Javascript
Angular4学习笔记之根模块与Ng模块
Sep 09 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
JavaScript如何获取到导航条中HTTP信息
Oct 10 Javascript
vue新建项目并配置标准路由过程解析
Dec 09 Javascript
javascript canvas封装动态时钟
Sep 30 Javascript
jQuery实现二级下拉菜单效果
Jan 05 #Javascript
基于JavaScript实现简单的随机抽奖小程序
Jan 05 #Javascript
jquery中ajax处理跨域的三大方式
Jan 05 #Javascript
基于JavaScript代码实现随机漂浮图片广告
Jan 05 #Javascript
多个js毫秒倒计时同时进行效果
Jan 05 #Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
Jan 04 #Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 #Javascript
You might like
用php解析html的实现代码
2011/08/08 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
php上传图片类及用法示例
2016/05/11 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
$()JS小技巧
2007/07/21 Javascript
表单元素事件 (Form Element Events)
2009/07/17 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
javascript设计模式之装饰者模式
2020/01/30 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
python从Oracle读取数据生成图表
2020/10/14 Python
《最大的“书”》教学反思
2014/02/14 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
销售业务员岗位职责
2015/02/13 职场文书
少年犯观后感
2015/06/11 职场文书
篮球拉拉队口号
2015/12/25 职场文书