Как Вы отменяете постепенное исчезновение jQuery (), после того как оно запустилось?

У меня есть основной элемент отделения для представления сообщения, что я показываю в течение нескольких секунд и затем исчезаю он использование

$('#message').fadeOut(5000);

Я хочу смочь отменить исчезновение, если пользователь нависает их мышь над отделением.

Как я могу отменить исчезновение, после того как метод постепенного исчезновения начал исчезать отделение?

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

$('#message').mouseenter(function() {
  clearTimeout(this.timeout);
});
$('#message').mouseleave(function() {
  this.timeout = setTimeout("$('#message').fadeOut(5000)", 3000);
});
$('#message').fadeIn(2000, function() {
  this.timeout = setTimeout("$('#message').fadeOut(3000)", 3000);
});
45
задан connexo 3 July 2019 в 06:37
поделиться

2 ответа

Проверьте функцию остановки

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

47
ответ дан 26 November 2019 в 21:20
поделиться

Кроме того, вы можете проверить, находится ли элемент в середине анимации, используя селектор : animated :

$('#message').mouseover(
    function () {
      if($(this).is(':animated')) {
         $(this).stop().animate({opacity:'100'});
      }
    }
);
24
ответ дан 26 November 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: