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 相关文章推荐
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
Ajax同步与异步传输的示例代码
Nov 21 Javascript
jQuery判断checkbox是否选中的小例子
Dec 02 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
JavaScript利用HTML DOM进行文档操作的方法
Mar 28 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
May 10 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
AngularJS过滤器filter用法总结
Dec 13 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
微信小程序下拉刷新界面的实现
Sep 28 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
May 23 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代码的函数
2008/07/22 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python的debug实用工具 pdb详解
2019/07/12 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
甲方资料员岗位职责
2013/12/13 职场文书
农村婚礼证婚词
2014/01/10 职场文书
高一生物教学反思
2014/01/17 职场文书
就业协议书怎么填
2014/04/11 职场文书
大型演出策划方案
2014/05/28 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
销售目标责任书
2014/07/23 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书