Spec-Zone.ru › jQuery

.finish()

.finish( [queue ] )Возвращает: jQuery

Описание: Остановить текущую анимацию, удалить все очереди анимаций и завершить все анимации для соответствующих элементов.

  • версия добавлена: 1.9.finish( [queue ] )

    • queue (по умолчанию: 'fx')
      Тип: Строка
      Имя очереди анимаций, в которой следует остановить анимацию.

При вызове .finish() для элемента, текущая анимация и все очереди анимаций (если таковые имеются) немедленно останавливаются, а их свойства CSS устанавливаются в целевые значения. Все очереди анимаций удаляются.

Если указан первый аргумент, будут остановлены только анимации в очереди, представленной этой строкой.

Метод .finish() похож на метод .stop(true, true), так как он очищает очередь и текущая анимация переходит к своему конечному значению. Однако он отличается тем, что .finish() также заставляет свойства CSS всех очередей анимаций перейти к их конечным значениям.

Анимацию можно остановить глобально, установив свойство $.fx.off в true. Когда это сделано, все методы анимации немедленно устанавливают элементы в их конечное состояние при вызове, а не отображают эффект.

Пример:

Нажмите кнопку «Go» один раз, чтобы запустить анимацию, а затем нажмите другие кнопки, чтобы увидеть, как они влияют на текущую и очереди анимаций.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>finish demo</title>
  <style>
  .box {
    position: absolute;
    top: 10px;
    left: 10px;
    width: 15px;
    height: 15px;
    background: black;
  }
  #path {
    height: 244px;
    font-size: 70%;
    border-left: 2px dashed red;
    border-bottom: 2px dashed green;
    border-right: 2px dashed blue;
  }
  button {
    width: 12em;
    display: block;
    text-align: left;
    margin: 0 auto;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div class="box"></div>
<div id="path">
  <button id="go">Go</button>
  <br>
  <button id="bstt" class="b">.stop( true,true )</button>
  <button id="bcf" class="b">.clearQueue().finish()</button>
  <br>
  <button id="bstf" class="b">.stop( true, false )</button>
  <button id="bcs" class="b">.clearQueue().stop()</button>
  <br>
  <button id="bsff" class="b">.stop( false, false )</button>
  <button id="bs" class="b">.stop()</button>
  <br>
  <button id="bsft" class="b">.stop( false, true )</button>
  <br>
  <button id="bf" class="b">.finish()</button>
</div>
 
<script>
var horiz = $( "#path" ).width() - 20,
  vert = $( "#path" ).height() - 20;
 
var btns = {
  bstt: function() {
    $( "div.box" ).stop( true, true );
  },
  bs: function() {
    $( "div.box" ).stop();
  },
  bsft: function() {
    $( "div.box" ).stop( false, true );
  },
  bf: function() {
    $( "div.box" ).finish();
  },
  bcf: function() {
    $( "div.box" ).clearQueue().finish();
  },
  bsff: function() {
    $( "div.box" ).stop( false, false );
  },
  bstf: function() {
    $( "div.box" ).stop( true, false );
  },
  bcs: function() {
    $( "div.box" ).clearQueue().stop();
  }
};
 
$( "button.b" ).on( "click", function() {
  btns[ this.id ]();
});
 
$( "#go" ).on( "click", function() {
  $( ".box" )
    .clearQueue()
    .stop()
    .css({
      left: 10,
      top: 10
    })
    .animate({
      top: vert
    }, 3000 )
    .animate({
      left: horiz
    }, 3000 )
    .animate({
      top: 10
    }, 3000 );
});
</script>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/finish

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API