Отсутствует плавный скроллинг по якорям
Здравствуйте! Есть у меня сайт-лендинг из одной страницы. Я к каждому блоку на этой странице добавил якоря, чтобы при нажатии на соотв. пункт меню перемещаться по сайту. Подключил скрипт для плавности перемещения
$('.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, время: 07:21. |