generalize parallax effect