don't include viewport position in offset, does too much bouncing