繁体   English   中英

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

[英]In jQuery, can you get the “target” opacity of an element that is fading?

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

例如...

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

这在jQuery中可行吗?

更新

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

我不认为会有。 没有对象的属性可以告诉它到底的位置,只有它当前的位置。 Jquery只是动画CSS属性。

失败一切......

var destination = 0.4;
$('body').fadeTo(destination);
//O wow. Now we know what is fading to!

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

每个不透明度动画的每一步都会调用不透明度步长函数。 您可能希望根据fx.elem过滤上述fx.elem

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM