Rengga Dev – Collection of hand-picked free vanilla JavaScript background effect code examples: change background color or image, animated, with canvas and etc.
gsap.registerPlugin(ScrollTrigger);
/* SMOOTH SCROLL */
const scroller = new LocomotiveScroll({
el: document.querySelector(".container"),
smooth: true
});
scroller.on("scroll", ScrollTrigger.update);
ScrollTrigger.scrollerProxy(".container", {
scrollTop(value) {
return arguments.length
? scroller.scrollTo(value, 0, 0)
: scroller.scroll.instance.scroll.y;
},
getBoundingClientRect() {
return {
left: 0,
top: 0,
width: window.innerWidth,
height: window.innerHeight
};
}
});
ScrollTrigger.addEventListener("refresh", () => scroller.update());
ScrollTrigger.refresh();
/* COLOR CHANGER */
window.addEventListener("load", function () {
const scrollColorElems = document.querySelectorAll("[data-bgcolor]");
scrollColorElems.forEach((colorSection, i) => {
const prevBg = i === 0 ? "" : scrollColorElems[i - 1].dataset.bgcolor;
const prevText = i === 0 ? "" : scrollColorElems[i - 1].dataset.textcolor;
ScrollTrigger.create({
trigger: colorSection,
scroller: ".container",
start: "top 50%",
onEnter: () =>
gsap.to("body", {
backgroundColor: colorSection.dataset.bgcolor,
color: colorSection.dataset.textcolor,
overwrite: "auto"
}),
onLeaveBack: () =>
gsap.to("body", {
backgroundColor: prevBg,
color: prevText,
overwrite: "auto"
})
});
});
});





