Заказать звонок
Заказ обратного звонка

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

Комментарии

Пока нет комментариев

Оставить комментарий