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 相关文章推荐
picChange 图片切换特效的函数代码
May 06 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
悬浮数字的实现案例
Feb 19 Javascript
jQuery DOM操作实例
Mar 05 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
Apr 06 Javascript
JS+CSS3制作炫酷的弹窗效果
Nov 08 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
Aug 09 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
swiper4实现移动端导航切换
Oct 16 Javascript
JavaScript如何借用构造函数继承
Nov 06 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 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
python实现石头剪刀布小游戏
2021/01/20 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
师范应届毕业生自荐信
2013/11/18 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
主题班会演讲稿
2014/05/22 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
python中的random模块和相关函数详解
2022/04/22 Python
Oracle中DBLink的详细介绍
2022/04/29 Oracle
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers