Чтобы следить за прокруткой, воспользуйтесь:
window.onscroll = function() {};
.
Дальше вы можете получить прокрученные пиксели через:
scroll = (document.body.scrollTop+0 || document.documentElement.scrollTop+0);
.
Затем всё просто - делаете прямую зависимость, допустим:
elem.style.opacity = scroll / 5
.
Дальше можно вручную отстроить всё ручной проверкой, сделать if, который будет изменять прозрачность только при определённых значениях скролла, ограничить ненужное изменение прозрачности, если она достигает 1, и.т.д..