@heyheyway

Как сделать плавную прокрутку к якорю на другой странице?

Здравствуйте, подскажите как можно организовать плавную прокрутку к якорю который находиться на другой странице?
<a href="http://mysite.com/faq/#anchor" target="_blank">к якорю на mysite.com/faq</a>
на
<div id="anchor" class="in"></div>

Перед якорем находяться еще блоки высотой ~1000px
  • Вопрос задан
  • 776 просмотров
Пригласить эксперта
Ответы на вопрос 2
IonDen
@IonDen
JavaScript developer. IonDen.com
1. Блокируем работу якорей по умолчанию. Это делается очень просто:
- в адресной строке называем якорь скажем #anchor_contacts
- в то время как реальное название просто #contacts

2. Пишем небольшой скрипт, который просто запускается на
$(document).ready(function () {
    var hash = document.location.hash;
    var anchor = hash.split("_")[1]; // получили имя якоря

    // теперь можно прокручивать
    var target = $("#" + anchor); // по id, можете заменить на name, если что
    $('html, body').animate({
        scrollTop: target.offset().top
    }, 1000);
});
Ответ написан
Fortoo
@Fortoo
Top-Web OpenCart
А можно ещё вот так:

var myHash = window.location.hash; //получаем значение хеша
history.replaceState({}, document.title, window.location.href.split('#')[0]); //очищаем хеш

$(document).ready(function(){
    if(myHash[1] != undefined){ //проверяем, есть ли в хеше какое-то значение
        $('html, body').animate({scrollTop: $(myHash).offset().top}, 500); //скроллим за полсекунды
    };
});


В таком варианте, не придётся подменять #anchor_search на #search

Обратите внимание, что внутри
$(document).ready(function(){

только часть скрипта

Ну или вот так https://qna.habr.com/q/355083
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы