Я создаю эффект прокрутки с помощью JQuery, и мне интересно, можно ли отличать прокрутку пользователя от программной прокрутки.Отличие между прокруткой пользователя и программной прокруткой с помощью Javascript
У меня есть что-то вроде этого:
$('#element').on('scroll',function(e){
$('#element').stop(true); // stop previous scrolling animation
$('#element').animate({ // start new scrolling animation (maybe different speed, different direction, etc)
scrollTop:...
});
});
Однако это событие срабатывает при каждом шаге анимации. Как узнать, вызвано ли это событие пользователем или анимацией?
Вы ищете [event.originalEvent] (https://github.com/jquery/api.jquery.com/issues/319), см [объект события документация] (https://api.jquery.com/category/events/event-object/) в разделе ** Другие свойства ** и этот [скрипт] (http://jsfiddle.net/xdv5mgua/) для примера. –
http://stackoverflow.com/questions/1659204/call-scroll-only-when-user-scrolls-not-when-animate/1659231#1659231 – FuzzyTree
Вы можете попробовать отличить его от события 'wheel'. Пользователь может запускать как события «wheel», так и 'scroll', тогда как jQuery, вероятно, только запускает событие' scroll'. – Xufox