Tri*_*Nhu 10 javascript jquery
我有一些window.onscroll事件
$(window).scroll(function(e){
//My Stuff
});
Run Code Online (Sandbox Code Playgroud)
但在我的代码中,我将动画滚动调用到某些地方
$('html, body').stop().animate({
scrollTop:555
}, 1000);
Run Code Online (Sandbox Code Playgroud)
所以我如何检测页面是由用户滚动或由我的代码调用.我当前的解决方案是animate在我的代码调用之前放置一个标志,然后清除它,但这不是一个聪明的解决方案.我也读过关于检测的信息e.which,e.originalEvent但它不起作用.我想你的专家在这里有一个很好的解决方案.
the*_*dox 19
$('#scroller').scroll(function(e) {
if (e.originalEvent) {
// scroll happen manual scroll
console.log('scroll happen manual scroll');
} else {
// scroll happen by call
console.log('scroll happen by call');
}
});
$('#scroller').scroll(); // just a initial call
Run Code Online (Sandbox Code Playgroud)
当您通过调用滚动e.originalEvent的意愿undefined,但是当滚动手动它将给scroll对象.