jQuery实现二级下拉菜单效果


Posted in Javascript onJanuary 05, 2016

大家都知道jQuery是一个框架,它对JS进行了封装,使其更方便使用。前面两篇博文分别是用CSS样式和JS实现的,那么这篇就用jQuery来实现二级下拉式菜单。
使用JQuery实现需要用到的知识有:

  •        1)使用$(function(){...})获取到想要作用的HTML元素。
  •        2)通过使用children()方法寻找子元素。
  •        3)通过使用show()方法来显示HTML元素。
  •        4)通过使用hide()方法来隐藏HTML元素。
  •        5)jQuery库引用方法:

第一种方法:将jQuery库下载到电脑上,然后引用,我下载的是jquery-1.7.1.min.js这个版本。
       例如: <script type="text/javascript" src="jquery/jquery-1.7.1.min.js"></script>
第二种方法:直接引用在线服务器上的jQuery库文件,比如谷歌服务器jQuery库,百度服务器jQuery库等。
       例如:引用百度服务器上的jQuery库文件
       <script type="text/javascript" src="jquery/1.9.0/jquery.js"></script>
接下来看看制作的流程:
1、调用jQuery库:编写代码,引用jquery库。由于谷歌已退出大陆,建议使用百度服务器的jQuery库。
       注意: 百度服务器的jQuery库地址:http://libs.baidu.com/jquery/1.9.0/jquery.js
2 、编写显示子菜单函数,使用$,并通过class名获取一级菜单li,过children()找到li的孩子元素ul,使用show()方法,显示二级菜单。
3、编写隐藏子菜单函数,使用$,并通过class名获取一级菜单li,过children()找到li的孩子元素ul,使用hide()方法, 隐藏二级菜单。
4、做浏览器兼容性测试,至少五个浏览器。IE7,8,9,火狐,谷歌,2345浏览器等。

先来看看效果图:

jQuery实现二级下拉菜单效果

最后我们来看看代码的情况,和前面的区别不大:
HTML代码:

<!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> 
<link rel="stylesheet" type="text/css" href="style.css" /> 
<!--引用百度服务器的jQuery库--> 
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> 
<script type="text/javascript" src="script.js"></script> 
</head> 
 
<body> 
<div id="nav" class="nav"> 
  <ul> 
    <li><a href="#">网站首页</a></li> 
   <li class="navmenu"><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 class="navmenu"><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>

CSS样式表外部style.css文件代码:

/*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; 
}

JS脚本外部script,js文件代码:

$(function(){ 
  $(".navmenu").mouseover(function(){ 
   $(this).children("ul").show();  
  }) 
  
  $(".navmenu").mouseout(function(){ 
   $(this).children("ul").hide(); 
  }) 
})

希望本文所述对大家学习jquery程序设计有所帮助。

Javascript 相关文章推荐
javascript window.opener的用法分析
Apr 07 Javascript
Jquery倒计时源码分享
May 16 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
深入理解JavaScript中为什么string可以拥有方法
May 24 Javascript
关于js二维数组和多维数组的定义声明(详解)
Oct 02 Javascript
javascript中Date对象的使用总结
Nov 21 Javascript
AngularJS1.X学习笔记2-数据绑定详解
Apr 01 Javascript
详解Vue中组件的缓存
Apr 20 Javascript
vue中nextTick用法实例
Sep 11 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 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
jQuery EasyUI之DataGrid使用实例详解
Jan 04 #Javascript
You might like
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
php 可变函数使用小结
2018/06/12 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
基于jQuery的可以控制左右滚动及自动滚动效果的代码
2010/07/25 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
python读写LMDB文件的方法
2018/07/02 Python
Django model反向关联名称的方法
2018/12/15 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
pytest中文文档之编写断言
2019/09/12 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
Python try except else使用详解
2021/01/12 Python
应聘美工求职信
2013/11/07 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
班长演讲稿范文
2014/04/24 职场文书
大学生创业计划书
2014/08/14 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
财务稽核岗位职责
2015/04/13 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
深入理解python协程
2021/06/15 Python
vue elementUI表格控制对应列
2022/04/13 Vue.js
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server