Разработчики использующие html тег <base href="http://error-log.ru/"> сталкиваются с неправильной работой якорных ссылок. Т.е. ссылка на странице https://error-log.ru/blog/ на якорь #box перенаправит вас на страницу https://error-log.ru/#box. Тег base активно используется в CMF MODX, поэтому и проблема актуальна для любителей этой платформы. Конечно, можно переделать ссылки в такой вид https://error-log.ru/blog/#box, но это уже будут костыли.
Решить задачу можно переложив переход по якорю на странице на js. А так как библиотека jquery подключена на 70% сайтов, переложим решение на нее. Итак, сразу код:
$("body").on('click', '[href*="#"]', function(e){ var fixed_offset = 100; $('html,body').stop().animate({ scrollTop: $(this.hash).offset().top - fixed_offset }, 800); e.preventDefault(); });
Итак: при клике на ссылку, в которой есть якорь, мы производим анимированный переход по ссылке за 800 мс. fixed_offset - это отступ для перехода, если у вас есть прилипающее меню, как у нас на сайте. Чтобы при переходе меню не закрыло нужный блок. Если у вас нет фиксированного меню, установите значение fixed_offset — 0.
James
6 лет назадКласс все работает. Спасибо админ!!!
vittalezz
5 лет назадВ ссылке, перед # прописать [~[*id*]~]
Получится: [~[*id*]~]#box
Результат: page#box
Если базовый url указан как https://site.ru/, то конечная ссылка будет https://site.ru/page#box
noob
5 лет назад