Как сделать заголовок меню плавным, если заголовок общий? - PullRequest
0 голосов
/ 28 апреля 2020
<script>
    $(document).ready(function(){
        $(".nav-menu").click(function(e){
            e.preventDefault();
            id = $(this).data('id');
            $('html, body').animate({
                scrollTop: $("#"+id).offset().top
            }, 2000);
        });
    });
</script>

В этом коде у меня есть общий заголовок, в котором плавная прокрутка работает только тогда, когда я нахожусь на странице index, потому что я определяю id на странице индекса. Теперь я хочу, если я нахожусь на другой странице, но когда я нажимаю любой идентификатор заголовка, он перенаправляется на индекс и открывает связанный раздел id. Итак, как я могу это сделать? Пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2020

Для другой страницы при нажатии на пункт меню перенаправить на страницу индекса и отправить идентификатор кликаемого атрибута данных с URL. Когда вы получаете идентификатор из URL-адреса триггера. Нравится.

  $(document).ready(function(){
        var hash = location.hash.substr(1).split('-');
        var id= hash[1];
        if(id && hash[0] == 'clicked'){
            setTimeout(function(){ $('.nav-menu[data-id="'+id+'"]').trigger('click')}, 5);

        }
        $(".nav-menu").on('click', function(e){
            e.preventDefault();
            id = $(this).data('id');
            if ($("#"+id).length){
                $('html, body').animate({
                    scrollTop: $("#"+id).offset().top
                }, 2000);
            }else{
                window.location.href="index?#clicked-"+id;
            }
        });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...