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 06 Javascript
Javascript实现单张图片浏览
Dec 18 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
require、backbone等重构手机图片查看器
Nov 17 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
JS简单添加元素新节点的方法示例
Feb 10 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
May 08 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
Apr 08 Javascript
基于JavaScript实现十五拼图代码实例
Apr 26 Javascript
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
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的安全策略
2006/10/09 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP中的类型约束介绍
2015/05/11 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python实现实时监控文件的方法
2016/08/26 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
Numpy的简单用法小结
2019/08/28 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
软件部经理岗位职责范本
2014/02/25 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
python函数的两种嵌套方法使用
2022/04/02 Python
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫