Fixes for collapseall/expandall when scrolled

This is change insure that:

1. We animate only thing visible in the viewport. No more, no less.
2. The scroll won't actually jump during/after the animation