@PlasterTom

Как работает код скролла?

$(function() {$('body').on('click', 'a.scrollable', function(event) {
  var $anchor = $(this);
  $('html, body').stop().animate({scrollTop: $($anchor.attr('href')).offset().top},1500,'easeInOutExpo');
  event.preventDefault();
  });
});

Желательно разъяснение по строкам. В особенности не понятно это var $anchor = $(this);
и это $('html, body').stop().animate
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
$(function() {$('body').on('click', 'a.scrollable', function(event) {
//так навешивается событие клика на ссылку, чтобы оно работало на созданных динамически элементах, которых еще нет на странице. Вместо боди может быть любой родитель, который будет на странице всегда.
  var $anchor = $(this); //this это элемент на котором сработало событие клика
  $('html, body').stop()//остановить все анимации
.animate( //эффект анимации
{scrollTop: //анимировать будем скролл
$($anchor.attr('href'))//берем атрибут href элемента, он же будет id блока, куда проскролить. $("#elem") - вот так получится
.offset().top //расстояние от начала страницы до элемента
},1500 //время анимации
,'easeInOutExpo'// динамика анимации
);
  event.preventDefault();  //отменить переход по ссылке браузером
  });
});


ссылки по теме
jquery.page2page.ru/index.php5/%D0%9F%D1%80%D0%B5%...
jquery.page2page.ru/index.php5/%D0%92%D1%8B%D0%BF%...
https://learn.javascript.ru/default-browser-action
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
EaGames
@EaGames
Front-end developer
тут вам основы js помог, ну прям очень, разъяснять тут по сути нечего...

var $anchor = $(this); в данном случае this это a.scrollable, используется он по сути ради получения значения атрибута href ссылки по которой кликнули.
stop(). Останавливает выполнение текущей анимации.
animate выполняет анимацию...
Ответ написан
Ваш ответ на вопрос

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

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