optimizations to lazy loader
- don't show image if already shown
- don't perform update if viewport change isn't big enough