在jQuery中,你能获得一个褪色元素的"目标"不透明度吗?

ale*_*lex 6 javascript jquery opacity

我想以某种方式获得一个褪色元素的目标不透明度(它被动画的最终值).

例如...

$('body').fadeTo(0.4); // 0.4
$('body').fadeIn(); // 1
$('body').fadeOut(); // 0
$('body').animate({ opacity: 0.7 }); // 0.7
Run Code Online (Sandbox Code Playgroud)

这在jQuery中可行吗?

更新

对于某些背景,请参阅Stack Overflow上的答案.我试图帮助SO上的另一个用户,并决定问这个与我的答案有关的问题.

Bri*_*nna 3

jQuery内部使用step函数,您可以覆盖该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);
};
Run Code Online (Sandbox Code Playgroud)

每个不透明度动画的每个步骤都会调用不透明度步进函数。您可能希望根据以下条件过滤上述内容fx.elem

fx.end是动画的最终值,fx.now是当前值,fx.start是起始值。fx.unit是值的单位(以 px、em、% 等为单位)。