Перейти к публикации

Как сделать отступ от якоря когда на сайте фиксированное меню


Рекомендованные сообщения

У меня на сайте фиксированное меню, и мне нужно сделать чтоб меню не наезжало на текст http://joxi.ru/Drl0XbPc47G1br

а чтоб было примерно так http://joxi.ru/vAWn9L1Uk8B4q2

ссылки на якорь имеют такой вид http://joxi.ru/eAOd9RaU4O6g7r и таких страниц много, поэтому поставить id для блока не получится, нужно сделать чтоб все ссылки в адресе которых есть хештег # при нажатии отступали на 150-200 пикселей сверху от самого якоря

пробовал такой код, но он почему то не работает, либо я что-то не правильно делаю, подскажите как решить данную проблему

 

 <script>
$('a[href^="#"]').click(function () {
var target = $(this).attr('href');
$('html, body').animate({scrollTop: $(target).offset().top - 150 }, 800);
return false;
});
</script>

 

Изменено пользователем CeSaRo
Ссылка на сообщение
Поделиться на других сайтах
В 18.03.2018 в 11:10, CeSaRo сказал:

У меня на сайте фиксированное меню, и мне нужно сделать чтоб меню не наезжало на текст http://joxi.ru/Drl0XbPc47G1br

а чтоб было примерно так http://joxi.ru/vAWn9L1Uk8B4q2

ссылки на якорь имеют такой вид http://joxi.ru/eAOd9RaU4O6g7r и таких страниц много, поэтому поставить id для блока не получится, нужно сделать чтоб все ссылки в адресе которых есть хештег # при нажатии отступали на 150-200 пикселей сверху от самого якоря

пробовал такой код, но он почему то не работает, либо я что-то не правильно делаю, подскажите как решить данную проблему

 


 <script>
$('a[href^="#"]').click(function () {
var target = $(this).attr('href');
$('html, body').animate({scrollTop: $(target).offset().top - 150 }, 800);
return false;
});
</script>

 

Дело в

a[href^="#"]

Это означает, что ссылка должна начинаться с # . У вас же начинается с http://

Попробуйте заменить на

a[href*="#"]

Но желательно добавить еще класс обертки текста фуллстори, чтобы не глобально распространялось.

.класс a[href*="#"]
Изменено пользователем redissx
Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, redissx сказал:

Дело в


a[href^="#"]

Это означает, что ссылка должна начинаться с # . У вас же начинается с http://

Попробуйте заменить на


a[href*="#"]

Но желательно добавить еще класс обертки текста фуллстори, чтобы не глобально распространялось.


.класс a[href*="#"]

сделал http://joxi.ru/xAeMKvlTYd4dJA но все равно не работает 

здесь можно попробовать разный код http://jsfiddle.net/gg7hg7m8/80/ 

я так понимаю нужно указать как-то в скрипте полный адрес к якорю 

Изменено пользователем CeSaRo
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...