cibus-industries/utlis/addScrollSpy.js
2025-07-14 14:03:36 +05:30

32 lines
831 B
JavaScript

const addScrollspy = (
defalutClass = "",
linksContainer = ".scrollspy-link",
activeClass = "active"
) => {
var section = document.querySelectorAll(".scrollSpysection");
// console.log(section);
var sections = {};
var i = 0;
Array.prototype.forEach.call(section, function (e) {
sections[e.id] = e.offsetTop;
});
var scrollPosition =
document.documentElement.scrollTop || document.body.scrollTop;
for (i in sections) {
if (sections[i] <= scrollPosition) {
document
.querySelector(linksContainer + ` .${activeClass}`)
?.setAttribute("class", defalutClass);
const navLink = document.querySelector(
linksContainer + " a[href*=" + i + "]"
);
navLink?.setAttribute("class", `${defalutClass} ${activeClass}`);
}
}
};
export default addScrollspy;