`
longzhun
  • 浏览: 372017 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

跟我学JQuery---------------第三课

阅读更多

上第三课之前,希望大家把前2节课的知识练习一下,至少多Jquery这些api一下就能写出来,不要老去翻笔记,这样就体现不出你的水平了,第一课的比较容易,第二课的input.trigger("focus").trigger("select")和tdObj.children("input")以及var keycode = event.which; 稍微不留点神可能一下想不起来。对于基础的多加练习,把基础打牢。

 

今天讲的案例是: 横向和纵向菜单

 

 

menu.css

 

ul, li {
	/*清除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: #EEEEEE;
}
a {
	/*取消所有的下划线*/
	text-decoration: none;
	padding-left: 20px;
	display: block;
	display: inline-block;
	width: 100px;
	padding-top: 3px;
	padding-bottom: 3px;
}
.main a, .hmain a {
	color: white;
	background-image: url(../images/collapsed.gif);
	background-repeat: no-repeat;
	background-position: 3px center;
}
.main li a, .hmain li a {
	color: black;
	background-image: none;
}
.main ul, .hmain ul {
	display: none;
}
.hmain {
	float: left;
	margin-right: 1px;
}

 

 

menu.html

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>JQuery实战-菜单效果</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<link type="text/css" rel="stylesheet" href="css/menu.css" />
		<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
		<script type="text/javascript" src="js/menu1.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>

 

menu.js

 

$(document).ready(function(){
	
	//$(".main > a") 跟 $(".main  a")一样都是取到classname是.main元素的子元素a
	//记得第一课讲了.classname 和#idname
	$(".main > a").click(function(){
		var ulNode = $(this).next("ul");
		
		//第一种方式:show动画显示 默认是fast ,加上slow是慢,还可以加上时间show("4000"),hide相反
		//此效果是点击显示并自动隐藏  更多效果可以参考api文档
		//ulNode.show("slow");
		//ulNode.hide("slow");
		
		//第二种方式:toggle相当于做了判断,如果隐藏,就显示,相反则隐藏
		//相当于
		/*
		if (ulNode.css("display") == "none") {
			ulNode.css("display","block");
		} else {
			ulNode.css("display","none");
		}
		*/
		//不同的是加了动画效果
		//ulNode.toggle("slow");
		
		//第三种方式:和二是一样的,动画效果有点不同
		ulNode.slideToggle();
		
		//第四种凡是:和第一种是一样的效果,动画效果不同而已
		//ulNode.slideDown("slow");
		//ulNode.slideUp("slow");
		
		changeIcon($(this));
	});
	$(".hmain").hover(function(){
		 $(this).children("ul").slideDown("slow");
		 changeIcon($(this).children("a"));
	},function(){
		$(this).children("ul").slideUp("slow");
		 changeIcon($(this).children("a"));
	});
	
	
	function changeIcon(menu){
		if(menu.css("background-image").indexOf("collapsed.gif") >0){
			menu.css("background-image","url('images/expanded.gif')");
		}else{
			menu.css("background-image","url('images/collapsed.gif')");
		}
	}
})

 

效果图:



 

 

总结:

1。.main a和.main > a的不同之处,前者选择使用了.main的这个class的元素内部所有的a节点,后者只选择.main的子节点中的a节点

2。.show,hide方法可以用于显示或隐藏元素,没有参数时的效果和修改css的display属性效果一样。参数可以是单位为毫秒的数字,或者是’slow’,’normal’,’fast’这三个文字,都可以来控制完成显示或隐藏需要的时间。注意这时动画效果时靠不断改变元素的宽度和高度来实现的

3。.toggle方法更为强大,可以省去我们判断元素是显示还是隐藏的状态,直接让显示的元素隐藏起来,隐藏的元素显示出来。参数使用方法和show,hide相同

4。.slideDown,slideUp可以实现向下或向上卷动的效果,实际上是通过指定时间内修改元素的高度来实现动画效果。需要注意的是这两个方法参数为空的情况和show,hide不同

5。.slideToggle和toggle达到的效果类似

6。.DOCTYPE对于JQuery中的动画是有影响的。没有DOCTYPE定义时,在IE中,JQuery的动画会出现闪烁的糟糕效果

  • 大小: 7.1 KB
分享到:
评论

相关推荐

    jquery-3.3.1.js和jquery-3.3.1.min.js

    jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-3.3.1.js和jquery-3.3.1.min.js免费下载哈。jquery-...

    jquery-3.7.0.min.js(jQuery下载)

    jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...

    开发工具 jquery-1.11.3.min

    开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-1.11.3.min开发工具 jquery-...

    jquery-ui.css、jquery-ui.js下载

    《jQuery UI:深入理解与应用》 jQuery UI是基于JavaScript库jQuery的一个扩展,它提供了一系列丰富的用户界面组件,包括但不限于对话框(Dialogs)、日期选择器(Datepickers)、拖放功能(Drag and Drop)、排序...

    jquery-ui-1.8.16

    jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-...

    jquery-migrate-1.2.1.js文件

    3. **查看警告**:当页面加载后,检查浏览器的控制台,查找由jQuery Migrate插件发出的警告信息。 4. **修复代码**:根据警告信息,找出并修改你的代码,以适应新的jQuery API。 5. **移除jQuery Migrate**:在所有...

    jquery-ui-1.8.2.custom.min.js,jquery-ui-1.8.4.custom.css

    《jQuery UI 1.8.x 自定义版本详解》 在Web开发领域,jQuery UI是一个广泛使用的库,它基于流行的JavaScript库jQuery,提供了丰富的用户界面组件和交互效果。本篇文章将详细探讨两个特定版本的jQuery UI——1.8.2....

    jquery-ui-1.8.16.custom.min.js/jquery-ui-1.8.16.custom.css

    **jQuery UI** 是一个强大的JavaScript库,用于构建用户界面,它基于流行的jQuery库。这个压缩包包含两个关键文件:`jquery-ui-1.8.16.custom.min.js` 和 `jquery-ui-1.8.16.custom.css`,这些都是jQuery UI的特定...

    jquery-migrate-3.0.0.zip

    例如,如果你的项目中还依赖于jQuery 1.x时代的某些功能,而在升级到jQuery 3.x时遇到了问题,jQuery Migrate就能派上用场。它会提醒开发者哪些代码需要更新,或者直接提供一个临时的解决方案,使得代码在新版本中...

    jquery插件jquery-ui-1.8.2.custom.min.js

    《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...

    jquery-ui-datepicker中文版

    jquery-ui-日期框扩展成时间框 jquery-ui时间框 基于别人的代码进行修改 jquery-ui-1.8.16.custom.css文件末尾加入以下代码 .ui-timepicker-div .ui-widget-header{ margin-bottom: 8px; } .ui-timepicker-div dl{ ...

    jquery-1.6.4-vsdoc.js

    最新版jquery-1.6.4-vsdoc.js jQuery的VS智能提示插。压缩包内包含jquery-1.6.4.js jquery-1.6.4.min.js jquery-1.6.4-vsdoc.js 。 【推荐用法】 1、将jquery-1.6.4-vsdoc.js与jquery-1.6.4.js放在同一目录,然后...

    jquery-1.7.1-vsdoc.js CSDN 首发

    最新版jquery-1.7.1-vsdoc.js jQuery的VS智能提示插件 建议下载该资源的朋友收藏我的csdn下载地址http://jehnjehn.download.csdn.net/,我以后会一直跟进更新vsdoc文档的下载,只要官方更新,我会在最短时间更新提供...

    jquery-3.5.0.js jquery-3.5.0.min.js.zip

    jquery-3.5.0.js jquery-3.5.0.min.js.zip

    jquery-ui-1.10.2.custom

    3. **Effects**:jQuery UI 提供了一套完整的特效库,如淡入淡出(Fade)、滑动(Slide)、切换(Toggle)等,以及一个用于自定义动画效果的工具集。 4. **Positioning**:这个功能可以帮助开发者精确地定位页面...

    jquery-3.6.3相关及js文件

    3、jquery-migrate-3.4.0.js文件(主要用于解决jquery版本升级中的问题,是jquery版本升级所必须引用的文件)。4、jquery-migrate-3.4.0.min.js(主要用于解决jquery版本升级中的问题,是jquery版本升级所必须引用的...

    jQuery版本迁移辅助插件jquery-migrate-1.2.1.min.js

    jQuery版本迁移辅助插件,如果您使用的低版本jQuery改为高版本后出现错误,可以试试这个插件。用来检测和恢复在jQuery1.9版本中已删除或已过时的API。jquery-migrate-1.2.1.js,jquery-migrate-1.2.1.min.js

    jquery-1.11.1.js 、jquery-1.11.1.min.js 【官方jquery包 js】

    《jQuery 1.11.1:高效前端开发的核心库》 jQuery,作为JavaScript库的代表性作品,一直以来都是Web开发者的重要工具。这个压缩包包含了两个版本的jQuery——`jquery-1.11.1.js`和`jquery-1.11.1.min.js`,它们都是...

    jquery-migrate

    例如jQuery版本用的是1.x,计划升级到3.x,就可以在页面删除1.x版本,换成3.x版本,如果有脚本错误,就引入jquery-migrate插件用于兼容低版本,同时也显示低版本方法替换成新版本方法的方案。 jQuery migrate(转移...

    jquery-ui-1.7.3.custom 完整开发包

    3. **js** - 这个文件夹存放的是 jQuery UI 的 JavaScript 文件。其中,主文件(如 `jquery-ui.js` 或 `jquery-ui.min.js`)包含了所有组件和功能。此外,还可能有按功能分隔的单独文件,如 `draggable.js`、`...

Global site tag (gtag.js) - Google Analytics