Как исправить скрол страницы при клике на таб?

Ссылка скопирована
10 апреля 2026 1 ответ

У меня есть блок с элементами где есть табы кликая по которым переключается контент по категориям.
Табы стоят стики в блоке.
Но допустим если с самого начала выбран таб "All", где все элементы, то проскролив вниз и нажав допустим на "Blue"(там где меньше элементов), то кинет вниз.

Нужно как-то это исправить чтобы при изменении таба возвращало наверх всегда. Как это можно грамотно сделать?

Соурс

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Для исправления проблемы с прокруткой страницы при клике на таб, вам нужно добавить обработчик событий JavaScript, который будет предотвращать стандартное поведение по умолчанию при клике на таб и вместо этого будет плавно прокручивать страницу к соответствующему контенту таба.

Ниже приведен пример кода, который реализует данное поведение:

document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.tab');
 
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function(event) {
            event.preventDefault();
 
            var target = this.getAttribute('data-target');
            var targetElement = document.getElementById(target);
 
            if (targetElement) {
                var yOffset = targetElement.getBoundingClientRect().top + window.pageYOffset;
                window.scrollTo({ top: yOffset, behavior: 'smooth' });
            }
        });
    });
});

document.addEventListener('DOMContentLoaded', function() { var tabs = document.querySelectorAll('.tab'); tabs.forEach(function(tab) { tab.addEventListener('click', function(event) { event.preventDefault(); var target = this.getAttribute('data-target'); var targetElement = document.getElementById(target); if (targetElement) { var yOffset = targetElement.getBoundingClientRect().top + window.pageYOffset; window.scrollTo({ top: yOffset, behavior: 'smooth' }); } }); }); });

В этом коде мы добавляем обработчик событий к каждому элементу таба с классом 'tab'. При клике на таб, мы получаем значение атрибута 'data-target', который содержит идентификатор элемента, к которому нужно прокрутить страницу. Затем мы находим этот элемент с помощью метода document.getElementById и используем метод window.scrollTo для плавной прокрутки страницы к этому элементу.

Не забудьте добавить класс 'tab' к вашим табам и атрибут 'data-target' с идентификатором соответствующего контента.

Надеюсь, данное решение поможет вам исправить проблему с прокруткой страницы при клике на таб. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно