Связаться с нами
Заказ обратного звонка

Изменение hash без скрола страницы

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

 

Сервис для удобной генерации списка 301 редиректов Интервью с руководителем отдела продаж интернет-магазинов Мебель 7я