Автоматическая навигация по статье с помощью jQuery

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

Навигация по статье обеспечивает ориентир, помогая читателям ознакомиться с контентом и легко перемещаться по длинным статьям. Увидев "оглавление" в статье, пользователи могут быстро перейти к интересующему их разделу.

Какие преимущества навигации

  • Навигация по статье помогает пользователям понимать структуру контента и быстрее находить нужную информацию. 
  • Содержание позволяет пользователям перейти непосредственно к разделу, который их интересует, минуя менее релевантный контент. Это делает чтение эффективнее и продуктивнее.
  • Помимо пользовательского опыта, навигация помогает поисковым системам лучше понять структуру вашего содержимого. Якорные ссылки с текстом, соответствующим заголовкам вашей статьи, могут улучшить поисковую оптимизацию вашего сайта.
  • Когда пользователи легко находят источник информации, они могут провести больше времени на вашем сайте, что положительно сказывается на вовлеченности и статистике просмотров страниц.

Как создать навигацию по статье на jQuery

Список якорных ссылок будет выводится в начале каждой статьи. Все что нужно для работы скрипта, указать в каком контейнере находится сам текст статьи. В данном примере подразумевается то, что текст статьи выводится в контейнере с id #content

$(document).ready(function(){
        // Формирование содержимого статьи
        var contents = $('<ul id="tableOfContents">'); // создание списка

        // Создание и добавление заголовка содержимого
        var contentsHeader = $("<p>").text("Содержание статьи");
        contents.append(contentsHeader);

        $('#content').find('h2, h3').each(function(index) {
            var element = $(this);
            var id = 'section-' + index; // уникальный ID для якорной ссылки

            // Добавление ID к заголовку
            element.attr('id', id);

            // Создание якорной ссылки и добавление ее в элемент списка li
            var link = $('<a>').attr('href', '#' + id).text(element.text());
            var listItem = $("<li>"); // создаем элемент списка
            listItem.append(link); // добавляем в элемент списка ссылку
            contents.append(listItem); // добавляем элемент списка в общее содержимое
        });

        // Вставка содержимого в начало статьи
        $('#content').prepend(contents);

        // Добавление обработчика событий для плавной прокрутки
        contents.find('a').on('click', function(event){
            event.preventDefault();
            var targetOffset = $($.attr(this, 'href')).offset().top;
            $('html, body').animate({
                scrollTop: targetOffset - 50 // Скроллит немного выше указанного места
            }, 800);
        });
    });

Как работает скрипт 

Формирование списка: Создается элемент списка ul с идентификатором tableOfContents. 

Поиск заголовков: Скрипт перебирает все элементы h2, h3 внутри контейнера #content. 

Для каждого заголовка выполняются следующие действия:

  • Назначается уникальный идентификатор id, составленный из слова "section-" и индекса элемента.
  • Создается якорная ссылка, в которой href равен # плюс уникальный id, а текст ссылки — это текст заголовка.
  • Этот элемент добавляется в списка li, который в свою очередь добавляется в основной список.

Добавление навигации в статью: После того, как все элементы списка собраны, основной список вставляется в начало контейнера #content.

В конце добавляется обработчик событий click для всех ссылок в списке навигации. При клике пользователь плавно перемещается к соответствующему разделу.

В результате этого процесса создается навигационное меню, которое может эффективно использоваться для быстрого и удобного перехода по длинным статьям и страницам.

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