【问题标题】:In jQuery, can you get the "target" opacity of an element that is fading?在 jQuery 中,你能得到一个正在消失的元素的“目标”不透明度吗?
【发布时间】:2011-02-27 13:30:22
【问题描述】:

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

例如...

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

这在 jQuery 中可行吗?

更新

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

【问题讨论】:

  • 在这里无法真正掌握您的目标...
  • 你想达到什么目的?也许这个问题会更容易理解。
  • @Zuul @Sean Vieira @Jakub Hampl 我已经更新说明。

标签: javascript jquery opacity


【解决方案1】:

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.end 是动画的最终值,fx.now 是当前值,fx.start 是起始值。 fx.unit 是值的单位(以 px、em、% 等为单位)。

【讨论】:

  • 布莱恩,非常感谢! :) 我现在要尝试让这个自定义选择器运行起来,我会让你知道它是怎么回事。祝你周末愉快!
【解决方案2】:

我不认为会有。没有一个对象的属性可以告诉它要去哪里,只有它当前的位置。 Jquery 只是为 CSS 属性设置动画。

其他一切都失败了......

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

【讨论】:

猜你喜欢
  • 2011-02-27
  • 2010-11-27
  • 2015-04-23
  • 2014-09-19
  • 2011-08-29
  • 2010-09-28
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
相关资源
最近更新 更多