Как WordPress убрать автоскролл к появляющемуся элементу?

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

При выборе пункта в табсах, происходит автоскролл к верхней части его содержимого. Не понимаю как от этого избавиться. В настройках самого плагина "HT Mega – Absolute Addons for Elementor" никаких подобных настроек нет.
Пробовал вычислить через код элемента как это происходит - не вышло.
Ссылка на сайт: https://zifra42.ru/
На скриншоте см. проблемный блок.

Как WordPress убрать автоскролл к появляющемуся элементу?

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

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

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

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

Автоскролл при переключении табов обычно делает не сам WordPress, а JavaScript плагина: обработчик клика по вкладке вызывает прокрутку к панели, меняет hash в URL или Elementor после открытия секции пересчитывает позицию и скроллит к активному элементу. Поэтому искать настройку в WordPress бесполезно, нужно найти конкретный обработчик.

Сначала проверьте, меняется ли URL после клика. Если появляется #tab-id, браузер может сам прыгать к элементу с таким ID. В этом случае помогает запрет стандартного действия ссылки:

document.addEventListener('click', function (event) {
  const link = event.target.closest('.htmega-tab a[href^="#"]');
  if (!link) return;
 
  event.preventDefault();
});

document.addEventListener('click', function (event) { const link = event.target.closest('.htmega-tab a[href^="#"]'); if (!link) return; event.preventDefault(); });

Если URL не меняется, но прокрутка всё равно есть, значит скролл вызывается скриптом. Можно перехватить клики по конкретному блоку и после переключения вернуть позицию:

document.addEventListener('click', function (event) {
  const tab = event.target.closest('.htmega-tab, .elementor-tab-title');
  if (!tab) return;
 
  const y = window.scrollY;
  setTimeout(function () {
    window.scrollTo({ top: y, behavior: 'auto' });
  }, 50);
});

document.addEventListener('click', function (event) { const tab = event.target.closest('.htmega-tab, .elementor-tab-title'); if (!tab) return; const y = window.scrollY; setTimeout(function () { window.scrollTo({ top: y, behavior: 'auto' }); }, 50); });

Это не самый красивый, но рабочий вариант, если у плагина нет настройки. Лучше ограничить селектор конкретным блоком, чтобы не сломать другие табы на сайте.

Также проверьте, нет ли у вкладок атрибута data-scroll, data-anchor или функции вида scrollTo в JS-файлах плагина. Если найдёте такую функцию, можно отключить её через настройки, фильтр или небольшой override-скрипт после загрузки плагина.

Не правьте файлы плагина напрямую: обновление сотрёт изменения. Добавьте JS в дочернюю тему, кастомный плагин или через безопасный блок пользовательского JS.

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

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

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

комментарий

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

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