На jQuery есть много различных эффектов, которые постепенно срабатывают при прокрутке страницы как здесь
http://codepen.io/rmitchellnet/pen/kqDrE
принцип довольно простой:
изначально див такой
<div class="scrollimate content" style="perspective-origin: 50% 312px;" data-animation="fadeInRight">What3</div>
как только див при прокрутке появляется в видимой области экрана, он становится таким
<div class="scrollimate content animated fadeInRight" style="perspective-origin: 50% 312px;" data-animation="fadeInRight">What3</div>
то есть к нему просто добавляется 2 класса, если в нем есть свойство data-animation. один animated, второй берется из свойства дива data-animation.
Думаю такое можно сделать и на чистом javascript, но я не понимаю как сделать событие с див, если он в видимой части экрана. Подскажите пожалуйста.