@L1nw0od

Плавный скрол к якорю?

Доброго времени суток, есть сайт www.lightupukraine.com
Ситуация такая (мне нужно сделать плавный скролл, но когда он будет опускаться нужно чтоб он ставал не прям к якрю а на 100 пикселей выше якоря!
Вот так он сейчас 0c0488a46a644ebfa994fa3bedf80961.png

Вот так нужно чтоб было901298459c8148b887b5c33d110866fe.png
  • Вопрос задан
  • 1301 просмотр
Решения вопроса 1
AltaiR-05
@AltaiR-05
Вот лучший вариант, который я нашел когда сам искал:
jQuery("body").on('click', '[href*="#"]', function(e){
  var fixed_offset = 100;
  jQuery('html,body').stop().animate({ scrollTop: jQuery(this.hash).offset().top - fixed_offset }, 1000);
  e.preventDefault();
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
$(document).ready(function(){
$('a[href*=#]').bind("click", function(e){
var anchor = $(this);
$('html, body').stop().animate({
scrollTop: $(anchor.attr('href')).offset().top - 100
}, 1000);
e.preventDefault();
});
return false;
});
Ответ написан
Комментировать
$(document).ready(function() {
  $('a[href^="#"]').click(function() {
      var target = $(this.hash);
      var pxOffset = 100; // Нужный отступ в пикселях
      if (target.length == 0) target = $('a[name="' + this.hash.substr(1) + '"]');
      if (target.length == 0) target = $('html');
      $('html, body').animate({ scrollTop: target.offset().top-$pxOffset}, 1000);
      return false;
  });
});
Ответ написан
@Alexlife
Если у вас меню не только на, например на главной но и на внутренних страницах, то лучше использовать так
jQuery( document ).ready(function($) {
	var $page = $('html, body');
$('.yourclass a').click(function() {
	var target = $(this.hash);
    $page.animate({
		scrollTop: target.offset().top - 50
    });
    return false;
});
		});

В таком случае в ссылке меню можно использовать не только с #, но ставить и полный путь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы