Danya Wyse, прочитай про intersection observer, там можно выбрать русский в правом верхнем углу.
Последовательность следующая: создаешь обсервер, говоришь ему наблюдать за элементом, при пересечении которого ты хочешь запускать какую-то логику.
Всякий раз, когда цель достигает порогового значения, указанного для IntersectionObserver, вызывается колбэк-функция callback. Где callback получает список объектов IntersectionObserverEntry и наблюдателя
В этом колбэке пишешь логику увеличения значения счетчика