.stop()


.stop( [clearQueue ] [, jumpToEnd ] )Возвращает: jQuery

Описание: Останавливает выполнение текущей анимации.

  • Добавлен в версии: 1.2.stop( [clearQueue ] [, jumpToEnd ] )

    • clearQueue (default: false)
      Тип: Boolean
      A Boolean indicating whether to remove queued animation as well. Defaults to false.
    • jumpToEnd (default: false)
      Тип: Boolean
      A Boolean indicating whether to complete the current animation immediately. Defaults to false.
  • Добавлен в версии: 1.7.stop( [queue ] [, clearQueue ] [, jumpToEnd ] )

    • queue (default: false)
      Тип: String
      The name of the queue in which to stop animations.
    • clearQueue
      Тип: Boolean
      A Boolean indicating whether to remove queued animation as well. Defaults to false.
    • jumpToEnd (default: false)
      Тип: Boolean
      A Boolean indicating whether to complete the current animation immediately. Defaults to false.

When .stop() is called on an element, the currently-running animation (if any) is immediately stopped. If, for instance, an element is being hidden with .slideUp() when .stop() is called, the element will now still be displayed, but will be a fraction of its previous height. Callback functions are not called.

If more than one animation method is called on the same element, the later animations are placed in the effects queue for the element. These animations will not begin until the first one completes. When .stop() is called, the next animation in the queue begins immediately. If the clearQueue parameter is provided with a value of true, then the rest of the animations in the queue are removed and never run.

If the jumpToEnd argument is provided with a value of true, the current animation stops, but the element is immediately given its target values for each CSS property. In our above .slideUp() example, the element would be immediately hidden. The callback function is then immediately called, if provided.

As of jQuery 1.7, if the first argument is provided as a string, only the animations in the queue represented by that string will be stopped.

The usefulness of the .stop() method is evident when we need to animate an element on mouseenter and mouseleave:

1
2
3
4
<div id="hoverme">
Hover me
<img id="hoverme" src="book.png" alt="" width="100" height="123">
</div>

We can create a nice fade effect without the common problem of multiple queued animations by adding .stop(true, true) to the chain:

1
2
3
4
5
$( "#hoverme-stop-2" ).hover(function() {
$( this ).find( "img" ).stop( true, true ).fadeOut();
}, function() {
$( this ).find( "img" ).stop( true, true ).fadeIn();
});

Toggling Animations

As of jQuery 1.7, stopping a toggled animation prematurely with .stop() will trigger jQuery's internal effects tracking. In previous versions, calling the .stop() method before a toggled animation was completed would cause the animation to lose track of its state (if jumpToEnd was false). Any subsequent animations would start at a new "half-way" state, sometimes resulting in the element disappearing. To observe the new behavior, see the final example below.

Animations may be stopped globally by setting the property $.fx.off to true. When this is done, all animation methods will immediately set elements to their final state when called, rather than displaying an effect.

Примеры использования