2016-04-07 7 views
0

У меня есть эта анимация для прокрутки вниз:остановить анимацию, когда он принимает

$('.link_msg').on('click', function() { 
    $(this).closest('#tabs').find('.messages').each(function() { 
     $(this).animate({ scrollTop: $(this).prop('scrollHeight')}, 1500); 
    }); 
}); 

Я хочу остановить эту анимацию, когда я прокручиваю мышь. я искал и нашел решение, но когда я даю что-ти «прокручивать ...»:

$('.link_msg').on('click', function() { 
    $(this).closest('#tabs').find('.messages').each(function() { 
     $(this).on("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove", function(){ 
      $(this).stop(); 
     }); 
     $(this).animate({ scrollTop: $(this).prop('scrollHeight')}, 1500), function(){ 
      $(this).off("scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove"); 
     }); 
     return false; 
    }); 
}); 

анимация не началась. Когда я удаляю анимацию «прокрутки» и останавливаюсь, когда нажимаю кнопку мыши, но, конечно, не останавливаюсь при прокрутке. Как это исправить?

Как еще можно анимировать свиток, чтобы вернуться в нижнее положение и остановиться, когда я прокручиваю мышь?

ответ

0

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

$('.link_msg').on('click', function() { 

    $(this).closest('#tabs').find('.messages').each(function() { 

     $(this).animate({ scrollTop: $(this).prop('scrollHeight')}, 2500); 

     var lastScrollTop = 0; 
     $(this).scroll(function(event){ 
      var st = $(this).scrollTop(); 
      if (st > lastScrollTop){ 
       // downscroll code 
      } else { 
       // upscroll code 
       $(this).stop(); 
      } 
      lastScrollTop = st; 
     }); 
    }); 
}); 

Подсказка найти на сайте: How can I determine the direction of a jQuery scroll event?

 Смежные вопросы

  • Нет связанных вопросов^_^