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

jquery的animate动画的回调函数怎么带参数?,第1张

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" })

easeInOutBack中的方程(其中c=1, b=0),要分成两段,

前半段:c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b

后半段:c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b

这两个方程模式均为,只是t的范围和系数不同:

f(t) = at^3+bt^2

easeInOutBack中的常数1.70158 = b,其中的 a = 1.525*b + 1。

至于1.525怎么来的,简单的说,在对接两个分段函数时,需要一系列的函数变换(拉伸、对称变换),然后一步步推算出来,计算过程比较复杂。。。

//---------看错提问了,补充答案---------

x 总时间进度,即x = t/d

t 当前动画执行时间(毫秒)

b 常数0

c 常数1

d 动画总的持续时间

s 自定义的参数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11569569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存