Отсутствует плавный скроллинг по якорям
Здравствуйте! Есть у меня сайт-лендинг из одной страницы. Я к каждому блоку на этой странице добавил якоря, чтобы при нажатии на соотв. пункт меню перемещаться по сайту. Подключил скрипт для плавности перемещения
$('.sp-megamenu-wrapper ul li a').click(function(){ $('html, body').animate({ scrollTop: $( $(this).attr('href') ).offset().top }, 900); return false; }); Ссылки на якоря в меню я прописываю в виде #id_якоря. Вроде как все хорошо, пока не понадобилось добавить на сайт еще несколько страниц. Если я нахожусь на любой из этих страниц и нажимаю на какой-либо пункт меню, я не могу переместиться к нужному якорю на главной. Если прописываю в меню путь к якорям в виде http://имя_домена.ru#id_якоря, тогда все ок, попадаю куда нужно. Но тогда, когда я на главной, пропадает плавная навигация при выборе пунктов меню. Перемещение идет рывками. Может кто сталкивался с подобным и подскажет, как решить проблему. Спасибо! |
kos0760,
как вариант: дописывать путь в скрипте если не на главной |
Цитата:
|
kos0760,
ссылку скиньте в личку |
Цитата:
Удалять расширения ссылок на текущей странице var lnk = document.URL.replace(/#.*$/,''); a[href^=lnk].each(function(){ this.href = this.href.replace(lnk,''); }); |
kos0760,
пропишите пути как делали -- а чтобы вернуть плавность замените ваш скрипт на этот jQuery('.sp-megamenu-wrapper ul li a').click(function(){ var sel = this.hash; jQuery('html, body').animate({ scrollTop: jQuery(sel).offset().top }, 900); return false; }); |
Рони, спасибо! Кажется заработало!
|
kos0760,
можно ещё так дополнить ... jQuery('.sp-megamenu-wrapper ul li a').click(function(){ var sel = this.hash; jQuery('html, body').animate({ scrollTop: jQuery(sel).offset().top }, 900); return false; }); var hash = document.location.hash; hash && jQuery('.sp-megamenu-wrapper ul li a[href *="'+hash+'"]').click(); только вопрос успеет сработать или нет ))) |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 22:52. |