jQuery实现横向纵向下拉菜单

学习javascript中有提到构建自己的javascript库,比如jQuery,这些库中包含自己常用的方便的小函数,这些函数可以让自己的代码更加清晰易懂,而且当别人调用时也很容易理解,当然编写库时需要注意一些问题,比如大小写、括号引号、换行等,这些为jQuery学习提供了一些基础,jQuery的学习主要通过几个实例来了解jQuery的应用,通过查看API运用特定方法实现自己的效果,它让网页动了起来。通过代码如何实现一个横向和纵向下拉菜单的效果。

首先在HTML中通过ul和li表示页面中的菜单项,然后添加对css和js文件的引用,注意js引用时要先引用jQuery.js然后再是自己编写的js文件。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
      <title>实战三:菜单效果</title>

	 <link type="text/css" rel="stylesheet"  href="css/menu.css"/>

         <script type="text/javascript" src="js/jquery.js"></script>
	 <script type="text/javascript" src="js/menu.js"></script>
</head>
<body>

  <ul>
      <li class="main">
	     <a href="#"> 菜单1</a>
		  <ul>
		       <li><a href="#">子菜单11</a></li>
		       <li><a href="#">子菜单12</a></li>
		  </ul>
	  </li>
	  <li class="main">
	      <a href="#"> 菜单2</a>
		   <ul>
		       <li><a href="#">子菜单21</a></li>
			<li><a href="#">子菜单22</a></li>
		  </ul>
	  </li>
	  <li class="main">
	      <a href="#">菜单3</a>
		  <ul>
		       <li><a href="#">子菜单31</a></li>
			<li><a href="#">子菜单32</a></li>
		  </ul>
	  </li>
  </ul>
  <br />
  <br />
  <br />
  <ul>
      <li class="hmain">
	     <a href="#"> 菜单1</a>
		  <ul>
		       <li><a href="#">子菜单11</a></li>
		      <li><a href="#">子菜单12</a></li>
		  </ul>
	  </li>
	  <li class="hmain">
	      <a href="#"> 菜单2</a>
		   <ul>
		       <li><a href="#">子菜单21</a></li>
		       <li><a href="#">子菜单22</a></li>
		  </ul>
	  </li>
	  <li class="hmain">
	      <a href="#">菜单3</a>
		  <ul>
		       <li><a href="#">子菜单31</a></li>
		       <li><a href="#">子菜单32</a></li>
		  </ul>
	  </li>
  </ul>
</body>
</html>

CSS部分:

ul,li{
    /*清除菜单项小圆点*/
   list-style: none;
}
ul{
   /*清除子菜单的缩进值*/
   padding:0;
   margin:0;
}
.main,.hmain{
   background-image:url(../images/title.gif);
   background-repeat:repeat-x;
   width:120px;
}
li{
  background-color:#CCCCCC;
}
a{
   /*取消所有的下划线*/
   text-decoration:none;
   padding-left:20px;
   display:bloock;
   display:inline-block;
   width:100px;
   padding-top:3px;
   padding-bottom:3px;
}
.main a,.hmain a{
    color:#FFFFFF;
	background-image:url(../images/collapsed.gif);
	background-repeat:no-repeat;
	background-position:3px center;
}
.main li a,.hmain li a{
    color:#000000;
	background-image:none;
}
.main ul,.hmain ul{
   display:none;
}
.hmain{
   float:left;
   margin-right:1px;
}

menu.js部分:

//纵向菜单点击实现下拉
$(document).ready(function(){
    $(".main>a").click(function(){
  //找到主菜单对应的子菜单项
	 var ulNode=$(this).next("ul");
	 /*if(ulNode.css("display")==""){
		ulNode.css("display","block");
		changeIcon($(this));
	 }else{
		ulNode.css("display","none");
	        changeIcon($(this));
	}*/
	   ulNode.slideToggle();//slideToggle方法和toggle类似(直接让显示的元素隐藏,隐藏元素显示)
	   changeIcon($(this));

	});

//横向菜单鼠标经过实现下拉(向下或向上卷动效果)
$(".hmain").hover(function(){
       $(this).children("ul").slideDown();
	changeIcon($(this).children("a"));
				<span style="font-family: SimSun;">},function(){</span>
				  $(this).children("ul").slideUp();
				  changeIcon($(this).children("a"));
				   });
});

//修改主菜单的指示图标
function changeIcon(mainNode){
	if(mainNode){
		if(mainNode.css("background-image").indexOf("collapsed.gif")>=0){
			mainNode.css("background-image","url('images/expanded.gif')");
		}else{
		mainNode.css("background-image","url('images/collapsed.gif')");
		}

	}
}

效果图:

这个阶段的学习也是要多动手,学会查看文档,掌握了方法,一些效果的实现都大同小异,要不然自己的学习很是单薄,多一份钻研,做一份积累。

时间: 2024-11-01 22:03:45

jQuery实现横向纵向下拉菜单的相关文章

【JQuery】——横向纵向下拉菜单

在学习jQuery的过程中,遇到项目中最常用到的下拉菜单,本着高效的原则,在此总结一下横向和纵向下拉菜单的实现效果,形成自己的小类库,以便自己在项目过程中能够方便的调用. HTML部分: 引用menu.css.jquery.js(已经封装好的)和menu.js文件 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&quo

CSS3实现的横向二级下拉菜单代码实例

CSS3实现的横向二级下拉菜单代码实例:横向二级下拉菜单是非常常用的效果,例如很多网站的导航栏就是这样的二级下拉菜单效果,非常好用,本章节分享一段使用CSS3实现的下拉菜单,当然当下很多浏览器都不支持,不过相信用不了多久这种现状就会被改变.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content

JQuery -&gt; 超级简单的下拉菜单

1. create a new accout, create orginazation, create repo 2. install git in your local pc Note: you can create ssh key to avoid username/password input for github operation https://help.github.com/articles/generating-ssh-keys https://help.github.com/a

jQuery cxSelect 多级联动下拉菜单

随着电商热门,这种多层次的互动更充分地体现在下拉菜单,最明显的是多级联动地址下拉选择,因此,这里是一个简单的分享 jQuery cxSelect 多级联动下拉菜单 cxSelect 它是基于 jQuery 多级联动菜单插件.它适用于各省.动菜单. 列表数据通过 AJAX 获取(须要在server环境执行),也能够使用变量自己定义,数据内容使用 JSON 格式. 提供国内省市县数据(数据来源:basecss/cityData Date: 2014.03.31) 个人一直都有习惯,当有新知识点须要学

jquery如何删除select下拉菜单中所有的option项

jquery如何删除select下拉菜单中所有的option项:在实际应用中,有可能要求一次性删除所有的select下拉菜单的option选项,方法非常的简单.select下拉菜单: <select id="mayi"> <option value="1">蚂蚁部落一</option> <option value="2">蚂蚁部落二</option> </select> 删除

jQuery制作水平多级下拉菜单

本篇体验使用jQuery制作水平的.多级的.下拉菜单. 下拉菜单的html部分如下. <body> <nav class="main-nav"> <ul class="nav-list"> <li><a href="#">主页</a></li> <li><a href="#">产品</a></li>

jQuery/CSS3大屏下拉菜单 自定义子菜单内容

这是一款样式很酷的jQuery/CSS3下拉菜单,首先这款CSS3菜单是宽屏的,主要是下拉菜单非常大气,更重要的是,下拉菜单的内容可以自己定义,也就是说,下拉菜单中可以定义菜单.图片等HTML元素,是一款非常实用的jQuery/CSS3下拉菜单插件. 在线预览   源码下载

HTML DOM部分---做竖向横向的下拉菜单

1,竖向下拉菜单  鼠标单击打开 再打击关闭 <style> *{ margin:0px auto; padding:0px;} div{ width:100px; height:50px; background-color:#900; border:1px solid #000; text-align:center; vertical-align:middle; line-height:50px;} #biao{ cursor:pointer;} li{ width:100px; heigh

jQuery动态创建二级下拉菜单

创建网站的时候常常需要用到下拉菜单,每次都要自己写,总觉得太麻烦了,于是就写了一个动态生成下拉菜单的函数,并为其添加了相应的功能样式和视觉样式.在使用的时候,只需要定义好各级菜单的内容以及首级菜单的链接并调用dropMenu函数就可以使用了,如果需要,还可以自己添加一些富有特色的视觉样式. 1. 在HTML中添加如下代码: 1 <nav class="drop_menu"> 2 <ul></ul> 3 </nav> 并引入相应的css和j