jQuery:duration param在.animate()方法中失败

时间:2011-02-14 15:27:02

标签: jquery

我在以下代码中的持续时间参数中设置的设置失败了我(50,1000,4000)。无论我设定的持续时间值,它都以一个看起来是半秒的速度运行。以下是现场演示的链接 - http://dekke.net/easing/easing.html。以下是相关代码:

        $(function() {
        $("#animate").click(function() {
            $("#one").animate({ left: "500px" }, { duration: "50", easing: "linear"}, 0);
            $("#two").delay(500).animate({ left: "500px" }, { duration: "1000", easing: "linear"} ); 
            $("#three").delay(1000).animate({ left: "500px" }, { duration: "4000", easing: "linear"} );
        });

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

而不是字符串:

duration:"1000"

传递一个数字:

duration:1000

编辑:更多信息。

这是分析duration的地方。 https://github.com/jquery/jquery/blob/1.5/src/effects.js#L283-284

基本上 -

  • 如果是数字,请使用
  • 如果没有,假设它是jQuery.fx.speeds的属性(“慢”,“快”)
  • 如果没有,请使用_default
  • jQuery.fx.speeds属性

我认为如果jQuery尝试parseInt(),如果它不是数字,以防万一有人确实传递了一个数字字符串,那将会很有用。然后,如果返回NaN,请尝试jQuery.fx.speeds