Изменение 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);
