Hi @OSUblake,
Thanks a lot for providing the awesome feedback. I am glad you're here for help.
One thing that I noticed is, when the browser window is resized to smallest size (~400px) or when debugging with mobile preview on Chrome, all the animations and scrolling runs very smoothly.
Animations has improved on desktop. I believe I am still doing it wrong somewhere.
I have updated the CSS and using NgZone for running animation code. Below is the code for homepage animation. I am doing it in a similar way for all pages.
// A Node is the list-item containing Image + Description for each product on the page
ngAfterViewInit() {
this.nodes = this.eleRef.nativeElement.querySelector('.category-list').querySelectorAll('li');
this.nodes.forEach(node => {
let nodeF = node.querySelector('.filler'),
nodeT = node.querySelector('.text'),
tl = new TimelineMax();
if (nodeF != null && nodeT != null) {
this.ngZone.runOutsideAngular(() => {
this.scene = new ScrollMagic.Scene({
triggerElement: node,
reverse: false
})
.setTween(tl
.fromTo(nodeF, 1,
{force3D: true, x: 0, ease: Power0.easeInOut},
{force3D: true, xPercent: '101' }, "trigger")
.fromTo(nodeT, 0.5,
{force3D: true, opacity: -1, x: -20 },
{force3D: true, opacity: 1, x: 0 }, "-=0.8", "trigger"))
.addTo(this.controller);
});
}
});
}
Now, I am using "will-change" only for the <span class="filler"> tag that rolls over the image to give a reveal effect.
Thank again for helping me so far
@glinkot Thank you for your suggestion. I will definitely look into it