您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年09月07日 09:53

原创 jQuery.delay() 函数详解

4756 次浏览 读完需要≈ 7 分钟

内容目录

delay()函数用于延迟队列中下一项的执行

delay()可以将队列中等待执行的下一个动画延迟指定的时间后才执行。它常用在队列中的两个jQuery效果函数之间,从而在上一个动画效果执行后延迟下一个动画效果的执行时间。

如果下一项不是效果动画,则它不会被加入效果队列中,因此该函数不会对它进行延迟调用。

该函数属于jQuery对象(实例)。

语法

jQuery 1.4 新增该函数。

jQueryObject.delay( duration [, queueName ] )

参数

参数 描述
duration 可选/String/Number类型指定延迟多少时间(毫秒数),默认值为400。该参数也可以为字符串"fast"(=200)或"slow"(=600)。
queueName 可选/String类型指定的队列名称,默认为"fx",表示jQuery标准的效果队列。

返回值

delay()函数的返回值为jQuery类型,返回当前jQuery对象本身。

示例&说明

请参考下面这段初始HTML代码:

<p>动画效果:
	<select id="animation">
		<option value="1">动画1</option>
		<option value="2">动画2</option>
		<option value="3">动画3</option>
		<option value="4">动画4</option>
	</select>
	<input id="exec" type="button" value="执行动画" >
</p>

<div id="myDiv" style="width:300px; height: 100px; background-color: #eee;">CodePlayer</div>

以下是与delay()函数相关的jQuery示例代码,以演示delay()函数的具体用法:

$("#exec").click( function(){
	var v = $("#animation").val();
	var $myDiv = $("#myDiv");
	if(v == "1"){
		$myDiv.slideUp( 1000 )
		.delay( "slow" )
		.fadeIn( 1500 );
	}else if(v == "2"){
		$myDiv.fadeOut( "slow" )
		.delay( 2000 )
		.slideDown( 1000 )
		.animate( { height: "+=300" } );
	}else if(v == "3"){
		/*
		注意:只有动画才会被加入效果队列中
		以下代码实际上只有slideUp()、slideDown()会加入效果队列
		delay()的延迟只对slideDown()起作用
		show()在被调用时就立即执行了(此时slideUp的动画效果尚未执行结束)
		以下代码的执行顺序时:
		1、slideUp()被加入队列、开始执行,
		2、show()也开始执行,它立即执行完毕,此时slideUp()的动画尚未执行结束
		3、延迟2秒
		4、执行SlideDown()
		*/
		$myDiv.slideUp( "slow" )
		.delay( 2000 ) 
		.show( ) // 它不是一个效果动画
		.slideDown( );
	}else if(v == "4"){
		$myDiv.show()
		.delay( 2000 )
		// 在现有高度的基础上增加300px (如果原来是100px,增加后就是400px)
		.animate( { height: "+=300px" }, 2000 ) 
		.animate( { width: "50%" }, 1000 )		
		.animate( { width: "200px", height: "100px" }, 1000 );		
	}
} );

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单