scroll event, in viewport state