prevent scrolling and zooming. use requestAnimationFrame when available.