jquery的animate动画的回调函数怎么带参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery的animate动画的回调函数怎么带参数?相关的知识,希望对你有一定的参考价值。

如题
请不要复制API的内容,已经看过,麻烦高手给出实例

animate(params,options)
用于创建自定义动画的函数。
这个函数的关键在于指定动画形式及结果样式属性对象。这个对象中每个属性都表示一个可以变化的样式属性(如“height”、“top”或“opacity”)。
注意:所有指定的属性必须用骆驼形式,比如用marginLeft代替margin-left.

而每个属性的值表示这个样式属性到多少时动画结束。如果是一个数值,样式属性就会从当前的值渐变到指定的值。如果使用的是“hide”、“show”或“toggle”这样的字符串值,则会为该属性调用默认的动画形式。

在 jQuery 1.2 中,你可以使用 em 和 % 单位。另外,在 jQuery 1.2 中,你可以通过在属性值前面指定 "+=" 或 "-=" 来让元素做相对运动。

返回值
jQuery

参数
params (Options) : 一组包含作为动画属性和终值的样式属性和及其值的集合

options (Options) : 一组包含动画选项的值的集合。

选项
duration (String,Number) : (默认值: "normal") 三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)

easing (String) : (默认值: "swing") 要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".

complete (Function) : 在动画完成时执行的函数

step (Callback) : Template:APICallback

queue (Boolean) : (默认值: true) 设定为false将使此动画不进入动画队列 (jQuery 1.2中新增)

示例
第一个按钮按了之后展示了不在队列中的动画。在div扩展到90%的同时也在增加字体,一旦字体改变完毕后,边框的动画才开始。

第二个按钮按了之后就是一个传统的链式动画,即等前一个动画完成后,后一个动画才会开始.

html 代码:

<button id="go1">» Animate Block1</button>
<button id="go2">» Animate Block2</button>
<div id="block1">Block1</div><div id="block2">Block2</div>
jQuery 代码:

$("#go1").click(function()
$("#block1").animate( width: "90%", queue: false, duration: 5000 )
.animate( fontSize: '10em' , 1000 )
.animate( borderWidth: 5 , 1000);
);

$("#go2").click(function()
$("#block2").animate( width: "90%", 1000 )
.animate( fontSize: '10em' , 1000 )
.animate( borderWidth: 5 , 1000);
);
--------------------------------------------------------------------------------

用600毫秒切换段落的高度和透明度

jQuery 代码:

$("p").animate(
height: 'toggle', opacity: 'toggle'
, duration: "slow" );
--------------------------------------------------------------------------------

用500毫秒将段落移到left为50的地方并且完全清晰显示出来(透明度为1)

jQuery 代码:

$("p").animate(
left: 50, opacity: 'show'
, duration: 500 );

--------------------------------------------------------------------------------

一个使用“easein”函数提供不同动画样式的例子。只有使用了插件来提供这个“easein”函数,这个参数才起作用。

jQuery 代码:

$("p").animate(
opacity: 'show'
, duration: "slow", easing: "easein" );
参考技术A jQuery的animate函数

jQuery提供了一个animate函数,可以通过改变CSS属性来实现一些动画效果。

用法如下:
.animate( properties[, duration ][, easing ][, complete ])
或者

.animate( properties, options ),其中 options 包含了duration、easing、queue、specialEasing、step、progress、complete、done、fail、always等多个属性。

animate函数允许我们在所有使用数字值的CSS属性上创建动画效果。唯一必须的属性是一个 CSS 属性对象。例如:

$('.class').animate(
left:"100"
);

Animation Properties and Values

所有的可创建动画效果的属性必须是一个单一的数值,例如 宽度(width)、高度(height)、左边距(left)等,但是不能是 background-color。注:要实现颜色的动画效果,必须使用 jQuery.Color() 插件。除非特殊声明,否则这些属性的单位都按照像素处理,可以使用的其他单位还包括 em 和 % 百分比。

除了一些样式属性外,像 scrollTop 和 scrollLeft 这样的一些非样式属性也可以实现动画效果。

缩写的CSS属性不被支持。例如,如果想对边框的宽度做一个动画效果,那么必须提前明确定义边框的宽度,而不能使用 auto。对于字体尺寸,可以使用 fontsize 或者 font-size,而不能使用 font。

对于每一个指定的值,我们可以使用“show”、“hide”、“toggle”三个字符串,来指定在何时使用动画效果。

动画属性也可以使用相对值。如果使用“+=”、“-=”这样的字符串,则会使用给定的步长进行属性值的计算。
参考技术B $("img.progress").animate(width:"0px",_maxTime*1000,"linear",function()
//这里可以传参数啊
//比如你得函数是test();

test(someArg);

);

jQuery动画animate()的使用

自己定义动画效果:

使用方法:animate(js对象,运行时间。回调函数);
js对象:{ }描写叙述动画运行之后元素的样式
运行时间:毫秒数

回调函数:动画运行结束后要运行的函数


html代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-2.1.4/jquery.min.js" language="javascript"></script>
</head>

<body>
<div id="div1" style="width:200px; height:100px; background-color:#999999; position:absolute"  onclick="f1()"></div>

</body>
<script>
function f1(){
<span style="white-space:pre">			</span>//距离左 50%。距离上 300px 结果:斜下移动
	$("#div1").animate({"left":"50%","top":"300px"},3000,function(){
	  alert("动画完毕");
	});

	
}
</script>
</html>

效果图:

技术分享























以上是关于jquery的animate动画的回调函数怎么带参数?的主要内容,如果未能解决你的问题,请参考以下文章

jquery的animate动画能不能在IE中执行

jQuery动画animate()的使用

jQuery .animate 不透明度回调函数

jquery的animate怎么获取动画的CSS属性呢?

jquery 动画滚动顶部回调

Animation动画: