Механика как должно работать:
- пользователь скроллит страницу сверху вниз: при попадании блока во viewport (внизу страницы) фон затеняется. Пользователь скроллит дальше, когда блок находится в середине экрана, затенение пропадает.
- пользователь скроллит страницу снизу вверх: при попадании блока во viewport (вверху страницы) фон затеняется. Пользователь скроллит дальше вверх, затенение пропадает, когда блок оказывается в середине экрана.
Не получается прописать условие, используя IntersectionObserver, чтобы затенение пропадало, когда блок в центре.
Сейчас блок пропадает только когда срабатывает threshold.
В центре он не срабатывает, поэтому не удается засечь пересечение центра.
И rootMargin readOnly, динамически не изменить.
https://jsfiddle.net/YanaLins2017/omfuapq4/