在jQuery中,你能得到一个褪色元素的“目标”不透明度吗?
我想以某种方式获得一个正在衰落的元素的目标不透明度(它被动画化的最终值)。
例如…
$('body').fadeTo(0.4); // 0.4 $('body').fadeIn(); // 1 $('body').fadeOut(); // 0 $('body').animate({ opacity: 0.7 }); // 0.7
这在jQuery中可行吗?
更新
对于某些背景,请参阅Stack Overflow上的答案。 我试图帮助SO上的另一个用户,并决定问这个与我的答案有关的问题。
jQuery在内部使用步骤函数,你可以覆盖jQuery.fx.step.opacity
函数来读取传递的jQuery.fx
对象:
var old = jQuery.fx.step.opacity; jQuery.fx.step.opacity = function( fx ) { console.log(fx.elem); console.log(fx.end); return old(fx); };
每个不透明度动画的每一步都会调用不透明度步长函数。 您可能希望根据fx.elem
过滤上述fx.elem
。
fx.end
是动画的最终值, fx.now
是当前值, fx.start
是起始值。 fx.unit
是值的单位(以px,em,%等表示)。
我不认为会有。 没有对象的属性可以告诉它到底的位置,只有它当前的位置。 Jquery只是动画CSS属性。
失败一切……
var destination = 0.4; $('body').fadeTo(destination); //O wow. Now we know what is fading to!