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 对话框和状态栏使用说明
Oct 25 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
jquery选择符快速提取web表单数据示例
Mar 27 Javascript
JavaScript中的正则表达式简明总结
Apr 04 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
Mar 30 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
Knockoutjs 学习系列(一)ko初体验
Jun 07 Javascript
玩转JavaScript OOP - 类的实现详解
Jun 08 Javascript
Javascript中字符串和数字的操作方法整理
Jan 22 Javascript
Vue导出页面为PDF格式的实现思路
Jul 31 Javascript
vue实现百度搜索功能
Dec 28 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中array_merge与array+array的区别
2013/06/21 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python skimage 连通性区域检测方法
2018/06/21 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
python修改FTP服务器上的文件名
2019/09/11 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
毕业自荐信
2013/12/16 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
新手上路标语
2014/06/20 职场文书