Javascript JS:用户滚动的默认设置?还是强制GSAP在用户上滚动?
我正在制作幻灯片。我想使其水平滚动将触发一个动画,该动画将可滚动区域移动到下一个“幻灯片” 一切都正常,但只要我滚动一点点。如果我滚动更多,GSAP滚动动画会无声地失败 有两种方法可以解决这个问题,我可以想到: 1>第一个是取消滚动行为,如下所示:Javascript JS:用户滚动的默认设置?还是强制GSAP在用户上滚动?,javascript,jquery,gsap,Javascript,Jquery,Gsap,我正在制作幻灯片。我想使其水平滚动将触发一个动画,该动画将可滚动区域移动到下一个“幻灯片” 一切都正常,但只要我滚动一点点。如果我滚动更多,GSAP滚动动画会无声地失败 有两种方法可以解决这个问题,我可以想到: 1>第一个是取消滚动行为,如下所示: $viewing_area.scroll( function(event) { if(animationIsInProgress) { event.preventDefault(); } } 但这种方式可能也会阻止GSAP
$viewing_area.scroll( function(event) {
if(animationIsInProgress) {
event.preventDefault();
}
}
但这种方式可能也会阻止GSAP滚动。无法区分滚动是由于GSAP还是我所知道的用户造成的
2>第二种方法是让GSAP强制它滚动用户正在做的任何事情:
TweenLite.to($viewing_area, time, {
scrollTo: { x: slide_stops[nextTarget] },
ease: Power4.easeInOut,
onComplete: function() {
console.log('scrolling completed');
animationIsInProgress = false;
}
//Some option for forcing the behavior over user scrolling
});
这些事情是可以实现的,还是滚动本身就不可阻挡?最后,GSAP scroll to plugin有这样一个设置: 它被称为autokill,如果设置为false,用户滚动将不会中断tween
TweenLite.to(myDiv, 2, {scrollTo:{y:400, autoKill:false}, ease:Power2.easeOut});