viewportEndOffset is the last visible offset, so we need to remove any end content padding to get the end of the scroll range