Я использую Bodymovin в сочетании со ScrollMagi c и GSAP, чтобы анимировать серию изображений при прокрутке назад и вперед. Все отлично работает, кроме того, что когда я дохожу до конца, оно не остается на конечном изображении, а становится белым.
Библиотеки, которые я загружаю сначала:
<script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.5.9/lottie.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/2.1.3/TweenMax.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/animation.gsap.js"></script>
Затем мой код:
var controller = new ScrollMagic.Controller();
var animation = bodymovin.loadAnimation({
container: document.getElementById('hero-anim'),
animationData: animationframes,
renderer: 'svg',
autoplay: false,
});
var tl = new TimelineMax();
tl.to({frame:0}, 1, {
frame: animation.totalFrames-1,
onUpdate:function(){
animation.goToAndStop((Math.round(this.progress() * 60)), true)
},
ease: Linear.easeNone
})
var lottieScene = new ScrollMagic.Scene({
duration: '100%',
offset: 600
})
.setPin("#hero-anim")
.setTween(tl)
.addTo(controller);
Есть идеи, что может быть причиной этого? Глядя на элемент проверки браузера, он в основном добавляет display:block
к изображению, которое должно быть видимым в данный момент, и применяет display:none
к предыдущему изображению, но в конце все они имеют display:none
, и оно не остается виден