В общем получилось как-то так
function checkSection(elem, i) {
let posElem = elem.getBoundingClientRect();
if (
posElem.top > 0 &&
posElem.top < window.innerHeight) {
paginationItem[i].classList.add('active');
} else {
paginationItem[i].classList.remove('active');
}
}
document.addEventListener('scroll', () => {
for (let i = 0; i < section.length; i++) {
checkSection(section[i], i);
}
});
Но срабатывет очень рано. Как только малая часть следующей секций появится.