Этот вопрос уже задавался здесь давно:
Обнаружение триггера события jquery пользователем или вызов по коду
Но на него никогда не отвечали окончательно (или, может быть, я просто не мог правильно искать).
Можно ли определить, было ли инициировано событие scroll
пользователем или функцией jQuery animate
?
Я пытаюсь предотвратить событие scroll
для запуска самого себя, выполняя что-то вроде этого:
$(document).scroll(function(){
$("html").stop(true);
var number = 400; //some other stuff is happening here
clearTimeout(tout);
tout = setTimeout(function(){
if(top == $(document).scrollTop()){
$("html").animate({
scrollTop: (number),
easing: "easeInQuad",
duration: 110
});
}
},120);
});
Этот код кажется подходящим:
$('#scroller').scroll(function(e) {
if (e.originalEvent) {
console.log('scroll happen manual scroll');
} else {
console.log('scroll happen by call');
}
});
Но объект originalEvent
не может правильно определить триггер анимации.
Есть ли другой способ сделать это?