$(window).scroll()
Как можно отслеживать, произошла ли прокрутка страницы по инициативе пользователя (колёсиком мыши) или из скрипта?
Задача вот в чём: на прокрутку страницы навешано множество обработчиков, в том числе и прокрутка скриптом к нужному якорю ( $("html,body").animate({scrollTop:$target.offset() .top}) ), и нужно, чтобы они срабатывали только в том случае, если пользователь прокрутил колёсико мыши. Если работает .animate({scrollTop:…}), то не нужно делать ничего. |
Как Вам такой вариант:
- создаете глобальный флаг (или свойство глобального объекта или глобальную переменную), например isAnimate = false - перед запуском .animate({scrollTop:…}) ставите значение isAnimate = true, после завершения работы анимации — isAnimate = false - при вызове обработчиков скрола проверяете флаг isAnimate, если его значение true — не выполняете код, которые необходим для прокрутки колесиком |
yura_remnev, спасибо, звучит разумно. Надо будет попробовать.
|
Часовой пояс GMT +3, время: 15:12. |