为什么jquery的动画函数的动画持续时间不一致?

时间:2013-08-09 20:32:49

标签: jquery animation jquery-animate css-animations

请查看这些简单的jquery动画:

animate.mouseenter(function () {
    animate.stop().animate({ opacity: 0 }, duration);
});

animate.mouseleave(function () {
    animate.stop().animate({ opacity: 100 }, duration * 10);
});

我的问题:

  • 为什么这两个动画的动画时间或多或少相等,但duration动画的mouseleave乘以10?
  • 这种行为有特殊原因吗?
  • 因子是10还是其他一些浮点值接近10?

这是一个工作小提琴:http://jsfiddle.net/TCMjd/3/

我还添加了fadeInfadeOut函数的示例,其中相等的duration参数产生的动画时间应该相等。

1 个答案:

答案 0 :(得分:2)

因为1的不透明度完全不透明。你的动画一直到100,所以很快就会命中1。

http://jsfiddle.net/e8N4Q/

var animate = $(".animate"),
fade = $(".fade"),

duration = 500;

animate.mouseenter(function () {
    animate.stop().animate({ opacity: 0 }, duration);
});

animate.mouseleave(function () {
    animate.stop().animate({ opacity: 1 }, duration * 10);
});

fade.mouseenter(function () {
    fade.stop().fadeOut(duration);
});

fade.mouseleave(function () {
    fade.fadeIn(duration * 10);
});