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 相关文章推荐
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 Javascript
js的延迟执行问题分析
Jun 23 Javascript
jQuery基于ajax实现星星评论代码
Aug 07 Javascript
Javascript验证方法大全
Sep 21 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
BootStrap tooltip提示框使用小结
Oct 26 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
vue中引用swiper轮播插件的教程详解
Aug 16 Javascript
js实现导航跟随效果
Nov 17 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
详解ES6 Promise的生命周期和创建
Aug 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
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
js中关于一个分号的崩溃示例
2013/11/11 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
学生实习推荐信范文
2013/11/26 职场文书
中年人生感言
2014/02/04 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
工作证明英文模板
2014/10/21 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
学校食堂管理制度
2015/08/04 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
mysql自增长id用完了该怎么办
2022/02/12 MySQL