эффект затухания повторяется столько раз, сколько я навожу

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

Я использую метод .stop(true, false) для анимации.

Как это:

$('.fallInspiration').hover(
   function(){
      $(this).stop(true, false).animate({color: '#D55E8E'}, 300);
},

Но я не знаю, как решить проблему при использовании эффекта затухания.

Вот код, который я использую:

$('.thisWeekWrap').hover(
    function()
    {
        $('.thisWeek').fadeOut(400);
        $('.thisWeekHover').fadeIn(400);
    },
    function()
    {
        $('.thisWeek').fadeIn(400);
        $('.thisWeekHover').fadeOut(400);
    }
);

Помощь высоко ценится. Спасибо


person vinod    schedule 15.06.2011    source источник
comment
Вы можете сделать воспроизводимую версию на jsFiddle.net?   -  person Alastair Pitts    schedule 15.06.2011
comment
какова актуальность первого блока кода? Наверняка вам нужны вызовы .stop() во втором блоке кода?   -  person Alnitak    schedule 15.06.2011


Ответы (1)


Вы сами ответили на свой вопрос: вызовите .stop() перед выполнением эффектов:

$('.thisWeek').stop().fadeOut( 400 )

если это вызывает проблемы (иногда jQuery может «сохранять» остановленные значения), попробуйте:

$('.thisWeek').stop().animate({ opacity : 0 }, 400);
person Mark Kahn    schedule 15.06.2011
comment
это хорошо сработало для моего варианта использования! это следует принять. если я увожу мышь с div, он останавливает постепенное исчезновение (и исчезает). спасибо! - person Matt Mintun; 28.04.2020