bootd
@bootd
Гугли и ты откроешь врата знаний!

Как плавно прокрутить страницу к нужному id переходя на нее с другой страницы?

Начнем. Есть у меня меню.
<a href="#about">О нас</a>
<a href="#products">Наша продукция</a>
<a href="#portfolio">Портфолио</a>
 <a href="#jobs">Вакансии</a>
 <a href="#contacts">Контакты</a>

Кликая по его ссылкам мы плавно скролим к нужным нам блокам(Тем что в href указаны).

Вот js
$('#topMenu a').on('click',function(){
        var elementClick = $(this).attr("href"),
            destination = $(elementClick).offset().top - 110; //Так как шапка на сайте фиксированная, то вычтем ее высоту!
            
        $('html, body').animate({ scrollTop: destination }, 1100);
        return false; 
    });


И все супер. Но! Теперь мы на внутренней странице. От туда переход по этим пунктам меню всегда идет на главную(у меня стоит условие в php если не главная, то выводи /#id). Но кликнув я попадаю на главную и резко перехожу к нужному id и без того -110 что в скрипте. Скрипт не сработал, страница же обновилась!

Как можно решить и сделать такой же плавный скролл?
Я придумал только 1 способ. Это при клике на ссылку записать в куку или в хранилище локальное(кому как) мой id и при переходе на главную проскролить этому элементу, а затем удалить(что бы при обновлении главной все время не скролил).

У вас есть еще идеи?
  • Вопрос задан
  • 4137 просмотров
Решения вопроса 1
Можно переход сделать не через якорь, а через GET параметр. При переходе на страницу и после ready страницы делать плавный переход к элементу с указанным в GET айдишником
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
scapp
@scapp
JS фрилансер
Передавайте не #id а параметр в url и сами с ним разбирайтесь после загрузки страницы.
Ответ написан
Ваш ответ на вопрос

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

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