【问题标题】:jquery delay anmiationsjquery延迟动画
【发布时间】:2013-01-10 23:05:06
【问题描述】:

第一个<div> 下移动画效果很好。我希望第二个<div> 在延迟 500 毫秒后向上滑动。它工作不正常。有人知道为什么吗?

这很有效,没有延迟:

$('#first-div').animate({top:"640px"},3000);
$('#second-div').slideDown("1000");

但我想延迟第二个 <div> 在第一个 <div> 向下滑动后向上滑动。 但它不适用于.delay()

$('#first-div').animate({top:"640px"},3000);
$('#second-div').delay(5000).slideup("1000");

我尝试使用的完整脚本是:

$(document).ready(function() {

      $('#first-div').animate({top:"640px"},3000);
      $('#second-div').delay(5000).slideup("1000");
      });

延迟后第二个<div> 向上滑动不起作用!我错过了什么?

【问题讨论】:

  • “不工作”是什么意思?
  • 图片上滑的第二个 div 不起作用
  • “不工作”是什么意思? (另外,我只看到slideDown。)
  • 哦,我是滑动而不是向下滑动,并且仍然无法使用 .delay() 向上滑动,任何想法!
  • “不工作”是什么意思?再次,请不要使用这些词。相反,说出会发生和不会发生但在意料之中的事情。 (使用slideup会导致错误。)

标签: jquery jquery-animate delay


【解决方案1】:

如果您希望第二个动作发生在第一个动作之后,您可以使用complete 函数

$(document).ready(function() {

    $('#first-div').animate({top:"640px"}, 3000, function() {
        //executes after the animation completes
        $('#second-div').slideDown("1000");
    });

});

编辑

Take a look here 了解更多关于animate 的信息。

【讨论】:

  • 那么为什么delay 不能按所展示的那样工作?动画队列是如何工作的?最好解释当前/提出的方法的问题。
  • B/c 你的延迟比第一个动画的时间短。
  • @Michael_B 我只能希望这就是“不工作”的意思 =^_^=
  • 看起来延迟更短了……如果他想这样做,可能需要 3000……这是另一种可能的解决方案。
  • @jwatts1980 [更好] 替代方案很好。但是,还要确保答案能解释为什么替代方案更好和/或为什么原来的方案不够。
猜你喜欢
  • 2012-05-10
  • 1970-01-01
  • 2019-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
相关资源
最近更新 更多