【发布时间】:2020-10-29 06:23:35
【问题描述】:
我们的目标是让anime.js 仅在用户滚动时产生动画,并在滚动停止时停止动画。上下滚动的动画是不同的。 这是当前代码:
var focusDown, focusUp;
var up = false, down = false, scrollPos = 0, scrollPos1;
var isScrolling;
window.addEventListener('scroll', function () {
window.clearTimeout( isScrolling );
scrollPos1 = $(window).scrollTop();
if (scrollPos1 == scrollPos) {} else {
if (scrollPos1 > scrollPos) {
up = false;
down = true;
} else {
up = true;
down = false;
}
}
scrollPos = scrollPos1;
if (down) {
focusDown = anime({
targets: '.focus-text', easing: 'linear', duration: 20000, autoplay: false,
translateX: function(el) {
return $('.focus-text').offset().left + 500;
}
});
focusDown.play();
}
if (up) {
focusUp = anime({
targets: '.focus-text', easing: 'linear', duration: 20000, autoplay: false,
translateX: function(el) {
return $('.focus-text').offset().left - 500;
}
});
focusUp.play();
}
isScrolling = setTimeout(function() {
if (focusUp && focusUp !== 'undefined') {focusUp.pause();}
if (focusDown && focusDown !== 'undefined') {focusDown.pause();}
}, 200);
}, false);
任何帮助表示赞赏!
【问题讨论】:
标签: javascript animation scroll anime.js