【问题标题】:jQuery animation() - complete firing too soonjQuery 动画() - 过早完成触发
【发布时间】:2011-04-28 20:44:37
【问题描述】:

我写了一个小动画脚本,从左到右淡化一组条纹。在所有动画完成后,应该运行回调函数。

脚本在这里:

http://jsfiddle.net/9zkbu/

效果很好,但我想为从右到左的动画做同样的事情:

http://jsfiddle.net/FTrhX/

正如你所见,回调函数在动画结束前被触发:( 我唯一改变的是delay()。我在这里做错了什么?为什么在所有动画完成之前“完成”运行?

【问题讨论】:

    标签: javascript jquery jquery-animate jquery-effects


    【解决方案1】:

    你快到了,你确实反转了方向,但忘记了回调也解释了反转。这样做对我有用:

    complete: (i == 0) ? function(){alert('done');} : null
    

    因为如果您尝试在 cols 处检查完成,您正在计算另一个方向 - 1 您会太早得到它,您需要在此处获取它 0。试试这个:http://jsfiddle.net/FTrhX/8/

    【讨论】:

    • 谢谢!我花了半个小时试图弄清楚这一点:x
    【解决方案2】:

    我看了你的两个预览,我真的很感动!虽然我不明白为什么第二个函数需要.stop()

    $('.col-' + i).delay(50 * (cols - i))
    

    这种方式也很好用,还是我遗漏了什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2012-12-29
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多