代码之家  ›  专栏  ›  技术社区  ›  Mr Shark

如何在jQuery中停止效果

  •  11
  • Mr Shark  · 技术社区  · 17 年前

    我有一个使用

    $(id).show("highlight", {}, 2000);
    

    $(id).show("highlight", {color: "#FF0000"}, 2000);
    

    在错误处理程序中。问题是,如果第一个高亮显示尚未完成,则第二个高亮显示将被放置在队列中,并且在第一个高亮显示准备就绪之前不会运行。因此,问题就来了:我能以某种方式阻止第一个效应吗?

    3 回复  |  直到 17 年前
        1
  •  15
  •   Dutchie432    14 年前

    我将此列为对已接受答案的评论,但我认为将其作为一个独立答案发布是一个好主意,因为它似乎有助于帮助一些有问题的人 .stop()


    仅供参考-我也在寻找这个答案(试图阻止脉动效应),但我确实有一个答案 .停止

    审阅完文档后,我需要 .stop(true, true)

        2
  •  11
  •   gnat Nat Poor    9 年前

    从jQuery文档中:

    http://docs.jquery.com/Effects/stop

    什么时候 .stop() .slideUp() 什么时候 .停止 调用时,元素现在仍将显示,但将是其先前高度的一小部分。不调用回调函数。

    .停止 调用时,队列中的下一个动画立即开始。如果 clearQueue 参数的值为 true ,则队列中的其余动画将被删除,并且永远不会运行。

    jumpToEnd 参数的值为true时,当前动画停止,但元素会立即为每个CSS属性指定其目标值。在我们上面 .slideUp()

        3
  •  2
  •   Brian Herbert    10 年前

    .停止(对,对)

    $('#identifier').effect("pulsate", {times:5}, 1000);
    

    为了解决这个问题,我补充道

    $('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);
    
        4
  •  0
  •   mike85    7 年前

    $('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);
    

    对我来说,只需删除不透明度即可:

    $('#identifier').stop(true, true).css('opacity','');