Изменение hash без скрола страницы
Часто возникает ситуация, когда нужно добавить какой либо хэш для ссылки, но при этом совершенно не нужно сколить страницу.
На нашем примере, мы столкнулись с табами, а точней с тем, что табы надо было переключать с генерацией хэша.
Поэтому было создано следующее решение:
function changeHashWithoutScrolling(hash) { var id = hash.replace(/^.*#/, ''), elem = document.getElementById(id); console.log(id); elem.id = id+'-tmp'; if(id == 'tab=description') { history.pushState("", document.title, window.location.pathname); } else{ window.location.hash = hash; } elem.id = id }
Если Вам не надо для какого либо параметра генерировать хэш, то запишите его в условие
if(id == 'tab=description') {}
где параметр tab=description - это тот хэш, от которого надо избавиться.
Функцию использовать очень легко
достаточно вызвать ее и передать сам хэш, пример:
changeHashWithoutScrolling(hash);