Задать вопрос
@PlasterTom

Что делает этот код?

Затруднение вызвала эта строчка scrollTop: $(hash).offset().top
Насколько я понимаю, hash - это значение аттрибута href у ссылки. Как у аттрибута могут быть координаты?
Дальше есть строчка window.location.hash = hash, которая так же подразумевает что hash - это аттрибут.
В чем моя ошибка?
P.S. Почему-то не вижу разницы, что с этим кодом, что без.

Код целиком, на всякий случай.
$(document).ready(function(){
  // Add scrollspy to <body>
  $('body').scrollspy({target: ".navbar", offset: 50});

  // Add smooth scrolling on all links inside the navbar
  $("#myNavbar a").on('click', function(event) {
    // Make sure this.hash has a value before overriding default behavior
    if (this.hash !== "") {
      // Prevent default anchor click behavior
      event.preventDefault();

      // Store hash 
      var hash = this.hash;

      // Using jQuery's animate() method to add smooth page scroll
      // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){
   
        // Add hash (#) to URL when done scrolling (default click behavior)
        window.location.hash = hash;
      });
    }  // End if
  });
});
  • Вопрос задан
  • 262 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@DanSorokin
Full-stack developer at onvoya.com
В дам случае hash это еще и айдишник элемента к которому будет плавный скролл
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@GreatRash
В hash лежит строка "#blablabla", наверняка где-то на странице есть элемент с таким же id.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы