jQuery操作动画队列

1.前言

当在jQuery对象上调用动画方法时,如果对象正在执行某个动画效果,那么新调用的动画方法就会被添加到动画队列中,jQuery会按顺序依次执行动画队列的每个动画。

jQuery提供了以下几种方法来操作动画队列。

1)        stop([clearQuery],[gotoEnd]):停止当前jQuery对象里每个DOM元素上正在执行的动画。

2)        queue([queueName,]callback):将callback动画数添加到当前jQuery对象里所有DOM元素的动画函数队列的尾部。

3)        queue([queueName,]naeQueue):用newQueue动画函数队列代替当前jQuery对象里所的DOM元素的动画函数队列。

4)        dequeue():执行动画函数队列头的第一个动画函数,并将该动画函数移出队列。

5)        clearQueue([queueName]):清空动画函数队列中的所有动画函数。

2.例子

下面的程序代码示范了访问默认动画队列的属性:

<!DOCTYPE html>
<html>
<head>
	<meta name="author" content="OwenWilliam />
	<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
	<title> 动画队列 </title>
	<style>
	div {
		width: 60px;
		height: 60px;
		position:absolute;
		top:60px;
		background: #f0f;
		display:none;
	}
	</style>
</head>
<body>
	<script type="text/javascript" src="../jquery-1.8.0.js">
	</script>
	<p>动画队列的长度是:<span></span></p>
	<div></div>
	<script type="text/javascript">
	var div = $("div");
	function runIt()
	{
		// 第1个动画:显示出来
		div.show("slow");
		// 第2个动画:自动动画,水平左移300px
		div.animate({left:'+=300'},2000);
		// 第3个动画:卷起来
		div.slideToggle(1000);
		// 第4个动画:放下来
		div.slideToggle("fast");
		// 第5个动画:自动动画,水平右移300px
		div.animate({left:'-=300'},1500);
		// 第6个动画:隐藏出来
		div.hide("slow");
		// 第7个动画:显示出来
		div.show(1200);
		// 第8个动画:卷起来,动画完成后回调runIt
		div.slideUp("normal", runIt);
	}
	// 控制每0.1秒调用一次该方法,该方法用于显示动画队列的长度
	function showIt()
	{
		var n = div.queue();
		$("span").text(n.length);
		setTimeout(showIt, 100);
	}
	runIt();
	showIt();
	</script>
</body>
</html>

3.执行结果

时间: 2024-10-12 11:49:47

jQuery操作动画队列的相关文章

jQuery源码分析系列(39) : 动画队列

data函数在jQuery中只有短短的300行代码,非常不起点 ,剖析源码的时候你会发现jQuery只要在有需要保存数据的地方无时无刻不依赖这个基础设施 动画会调用队列,队列会调用data数据接口还保存队列里面的的动画数据 所以我们在自习回顾下关于数据缓存 //These may be used throughout the jQuery core codebase //存数据的 //用户使用 data_user = new Data(); //存储对象 //jQuery内部私有 //用来存事件

jQuery动画高级用法(上)——详解animation中的.queue()动画队列插队函数

决定对animate方面做一些总结,希望能给大家一些启发和帮助 从一个实际应用谈起 今天不谈animate().fadeIn().fadeOut().slideUp().show().hide()诸如此类的具体动画函 数,而谈谈几个并不常用的,甚至说是有点风马牛不相及,但又十分十分重要的动画函数queue(),dequeue(),和stop(). 先让我们从一个简单的例子谈,假设有一个购物功能,在结账之前,用户仍然可以把购物车里的删除至备选栏中(也许因为用户的资金不足,可以存储至下次购买) 好,

用队列模拟jquery的动画算法

Aaron最近疯狂的爱上了算法研究,估计又要死伤不少脑细胞了,我喜欢捡现成的,可以省些力气.发现他写的一段源码,运行一下,还蛮好玩的,于是拿来分析一下,一来吸收下里边的营养,二来加深一下源码学习的功力.话说这源码还真是提高js内功的一大秘决,不信,就和我一起来品味一下吧. //立即执行函数,没有什么好说的.看下面演示 /** (function($){ //此处的$会由后面紧跟的立即执行函数的返回值提供 })(function(){ //这个函数运行的结果就是$啦 return aQuery }

深入学习jQuery动画队列

前面的话 队列实现是jQuery非常棒的一个拓展,使用动画队列可以使动画更容易实现.本文将详细介绍jQuery动画队列 queue() queue()方法用来显示在匹配的元素上的已经执行的函数队列 queue([queueName]) queue()方法可以接受一个可选参数——一个含有队列名的字符串.该参数默认是'fx' <script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script&

动画队列操作

1.概述: 关于动画我们已经俩接不少,但是用jquery让动画按照顺序执行的时候,这就涉及到动画队列的问题. 2.相关代码: <!DOCTYPE HTML > <HTML> <HEAD> <TITLE> By ShaZhou </TITLE> </HEAD> <style> #demo div{ width:100px; height:100px; background:red; position:absolute; }

JQuery动画队列问题

在上网的时候经常会发现一些网站上发现一些bug,如导航菜单的动画队列问题(在同一个元素上执行多个动画,那么对于这个动画来说,后面的动画 会被放到动画队列中,等前面的动画执行完成了才会执行) 要解决问题需要停止动画   stop(clearQueue, jumpToEnd) 参数clearQueue     是否清除队列 参数jumpToEnd     是否跳转到最终效果 代码实现: $(function () { $("#btnStart").click(function () { $

jquery的动画效果

序言:昨天复习了jQuery的一些事件,今天我打算继续来复习jQuery的动画效果. 用于写一些网页特效:渐变菜单,渐变显示,图片轮播等. 首先当然得引入插件:<script src="jquery/jquery-1.11.1.js"></script> 1.简单的HTML代码 <input type="button" value="show" id="btn1"/><input ty

锋利的jQuery读书笔记---jQuery中动画

jQuery中的动画: 1.show和hide 2.fadeIn和fadeOut 3.slideUp和slideDown <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <script type="text/javascript" src="../../js/jquery-2.1.3.js">

松软科技课堂:jQuery 效果 - 动画

jQuery 动画 - animate() 方法 jQuery animate() 方法用于创建自定义动画. 语法: $(selector).animate({params},speed,callback); 必需的 params 参数定义形成动画的 CSS 属性. 可选的 speed 参数规定效果的时长.它可以取以下值:"slow"."fast" 或毫秒. 可选的 callback 参数是动画完成后所执行的函数名称. 下面的例子演示 animate() 方法的简单