scroll spy + update URL w/ hash