Javascript: Как узнать находится ли DOM элемент в области видимости?
>> К сожалению, знать положение скрола мало — нет информации об общей высоте окна.

Так а вроде как window.innerHeight как раз и говорит о высоте окна. Так что имея координаты положения элемента в документе, положение скроллингов и высоту окна вполне уже можно определить видим объект или нет.
Наберите в гугле: javascript check DOM element visibility

Первые ссылки будут содержать примеры решения данной задачи.