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 面向对象全新理练之原型继承
Dec 03 Javascript
javascript 模式设计之工厂模式详细说明
May 10 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
jQuery实现高亮显示网页关键词的方法
Aug 07 Javascript
JavaScript对象学习小结
Sep 02 Javascript
详解JavaScript中常用的函数类型
Nov 18 Javascript
javascript Slip.js实现整屏滑动的手机网页
Nov 25 Javascript
写给小白看的JavaScript异步
Nov 29 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 Javascript
JavaScript实现滑动门效果
Jan 18 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
简单采集了yahoo的一些数据
2007/02/14 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
python pandas库的安装和创建
2019/01/10 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
端午节活动策划方案
2014/03/09 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
管理失职检讨书
2015/05/05 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript