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 相关文章推荐
js计算页面刷新的次数
Jul 20 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
JavaScript自学笔记(必看篇)
Jun 23 Javascript
jquery利用json实现页面之间传值的实例解析
Dec 12 Javascript
Bootstrap 3 按钮标签实例代码
Feb 21 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
May 24 Javascript
Vue渲染函数详解
Sep 15 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
Oct 25 Javascript
vue组件tabbar使用方法详解
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中在PDO中使用事务(Transaction)
2011/05/14 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
js自带函数备忘 数组
2006/12/29 Javascript
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
this[] 指的是什么内容 讨论
2007/03/24 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
js实现鼠标跟随运动效果
2020/08/02 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
中班上学期幼儿评语
2014/04/30 职场文书
会计求职信
2014/05/29 职场文书
职工宿舍管理制度
2015/08/05 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
处理canvas绘制图片模糊问题
2022/05/11 Javascript
Nginx如何配置根据路径转发详解
2022/07/23 Servers