Вы можете подключить слушателя прокрутки, чтобы определить, когда пользователь прокручивает. Внутри слушателя вам нужно выполнить некоторые математические расчеты, чтобы рассчитать, какой элемент просматривается в данный момент. Переменными, которые можно использовать для расчета, являются scrollTop (в контейнере, используемый для определения текущей позиции прокрутки) и clientHeight каждого элемента.
let nameDisplayDiv = document.getElementById('display')
let containerDiv = document.getElementById('container')
function refresh() {
let scrollTop = containerDiv.scrollTop + containerDiv.clientHeight / 2
let height = 0
for (let child of containerDiv.children) {
let top = height
let bottom = height += child.clientHeight
if (top < scrollTop && bottom > scrollTop) {
// Found the element that's currently viewed!
nameDisplayDiv.innerHTML = child.style.backgroundColor
break
}
}
}
containerDiv.onscroll = refresh
Вот рабочая скрипка:
https://jsfiddle.net/uxh91Leq/2/