jQuery-метод stop() используется для остановки анимаций или эффектов jQuery, запущенных в данный момент на выбранных элементах, до их завершения.

Базовый синтаксис метода stop() выглядит следующим образом:

$(selector).stop(stopAll, goToEnd);

Параметры в приведенном выше синтаксисе имеют следующие значения:

  • Необязательный логический параметр stopAll указывает, удалять анимацию из очереди или нет. Значением по умолчанию является false — это означает, что только текущая анимация будет остановлена, остальные анимации в очереди будут выполняться позже.
  • Необязательный логический параметр goToEnd указывает, следует ли завершить текущую анимацию немедленно. Значением по умолчанию является false.

Вот простой пример, демонстрирующий метод stop(), в котором вы можете запускать и останавливать анимацию по нажатию кнопки.

<script>
$(document).ready(function(){
    // Запускаем анимацию
    $(".start-btn").click(function(){
      $("img").animate({left: "+=150px"}, 2000);
    });
 
    // Останавливаем запущенную анимацию
    $(".stop-btn").click(function(){
      $("img").stop();
    });
    
    // Запускаем анимацию в обратном направлении
    $(".back-btn").click(function(){
      $("img").animate({left: "-=150px"}, 2000);
    });
 
    // Восстанавливаем значения по умолчанию
    $(".reset-btn").click(function(){
      $("img").animate({left: "0"}, "fast");
    });
});
</script>

jQuery-метод stop() работает для всех эффектов jQuery, таких как fading, sliding, show и hide, а также пользовательских анимаций.

Вот еще один пример этого метода, в котором, если вы снова нажмете кнопку «Переключить слайд» после запуска анимации, но до ее завершения, анимация начнется в противоположном направлении сразу от сохраненной начальной точки.

<script>
$(document).ready(function(){
    // Переключаем текущую скользящую анимацию
    $(".toggle-btn").on("click", function(){
        $(".box").stop().slideToggle(1000);
    });
});
</script>

Создание эффекта плавного наведения

При создании анимированного эффекта наведения мыши одной из распространенных проблем, с которыми вы можете столкнуться, являются множественные анимации в очереди, когда вы быстро устанавливаете и удаляете курсор мыши.

Потому что в этой ситуации события mouseenter или mouseleave запускаются быстро до завершения анимации. Чтобы избежать этой проблемы и создать приятный и плавный эффект наведения, вы можете добавить stop(true, true) в цепочку методов, например:

<script>
$(document).ready(function(){
    $(".box").hover(function(){
        $(this).find("img").stop(true, true).fadeOut();
    }, function(){
        $(this).find("img").stop(true, true).fadeIn();
    });
});
</script>

jQuery-метод stop(true, true) очищает все анимации в очереди и возвращает текущую анимацию к конечному значению.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.