【问题标题】:Jquery Timers - Cant stop everyTime loopJquery Timers - 无法停止每次循环
【发布时间】:2011-11-01 14:24:58
【问题描述】:

我有一个小动画可以让元素上下摆动。每个元素的摆动速度和数量略有不同。 我正在使用 Jquery Timers (http://plugins.jquery.com/project/timers) everyTime 函数来无限循环动画。

我已经成功地让元素上下摆动,但我无法让它们停止使用 stopTime() 函数。

这是我目前所拥有的:

function randomFromTo(from, to){
   return Math.floor(Math.random() * (to - from + 1) + from);
}

    function bobbing(command){

       if(command=='start'){
          $("#scroller .feature-headline").each(function (i) {
             $(this).everyTime(1, 'bobbing', function (){
                var bobAmount = randomFromTo(5, 10);
                var bobSpeed = randomFromTo(1200, 2000);
                $(this).animate ({marginTop: bobAmount}, bobSpeed, 'linear').animate ({marginTop: 0}, bobSpeed, 'linear');
             });
          });
       } else {
          $("#scroller .feature-headline").each(function (i) {
             $(this).stopTime('bobbing');
          });
       }

    }

我哪里错了?

【问题讨论】:

    标签: jquery timer jquery-animate


    【解决方案1】:

    This tutorial 区分停止计时器和停止动画。完全停止动画的例子是

    $( "#ball_holder").stop(true).stopTime();
    

    ...所以我会尝试

    $(this).stop(true).stopTime('bobbing');
    

    【讨论】:

    • 感谢mqsoh的回复。不幸的是,动画继续进行。它可能会停止一秒钟,但很难说。动画本身非常生涩,所以我想知道我是否需要以不同的方式处理整个事情......只是不知道如何!
    • 我注意到你的 bobbing 函数比随机数函数缩进更多。包含代码的其他部分可能会有所帮助;你检查过你没有循环播放动画吗?
    • 我会尝试做一个演示,因为完整的代码正在进行中,即非常混乱!哈哈。马上回来。
    • 嗯。在我正在制作的精简演示中,一切正常,所以我需要仔细查看原始代码,看看有什么不同。我可能与在轮播中包含元素有关。
    • Firefox 在我身上崩溃了,然后当它重新启动时,一切都按预期工作!我想知道这是否是一个缓存的东西?无论如何,谢谢mqsoh,你的建议很有效:)
    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 2018-02-12
    相关资源
    最近更新 更多