区分用户滚动和使用Javascript编程滚动

我正在使用JQuery创建一个滚动效果,我想知道是否有可能区分用户滚动和编程滚动

我有这样的想法:

$('#元素')。在('scroll',函数(e)上{
$(“#元素”).stop(true);//停止上一个滚动动画
$(“#元素”)。设置动画({//开始新的滚动动画(可能不同的速度、不同的方向等)
滚动顶端:。。。
});
});

但是,在动画的每个步骤中都会触发此事件。如何判断此事件是由用户还是由动画触发的

使用变量确定以编程方式滚动的时间

例如:

var programmScrolling=false;
$('#element')。在('scroll',函数(e)上{
如果(程序滚动){
回来
}
$(“#元素”).stop(true);//停止滚动动画
程序滚动=真;
$('#元素')。设置动画({
滚动顶端:。。。
});
程序滚动=错误;
});

不确定这是否正是你想要的,但这个概念应该有效

发表评论