Как я могу запустить функцию jQuery, только если пользователь не прокрутил? - PullRequest
0 голосов
/ 02 декабря 2019

Я пытался включить функцию автопрокрутки на моем сайте ( здесь ). Я хочу, чтобы он прокручивал содержимое до 6 секунд после загрузки, но только в том случае, если пользователь находится в самой верхней части страницы и недостаточно прокрутил ее, чтобы раскрыть элемент #introduction.

У меня есть этот код,который работает, но я не хочу, чтобы он выполнялся, если пользователь уже сам прокрутил:

$('html,body').delay(6000).animate({
    scrollTop: $('#introduction').offset().top
}, 1000);

Я бы также хотел, чтобы это происходило с облегчением, если это возможно.

1 Ответ

0 голосов
/ 02 декабря 2019

Вы можете сделать что-то вроде этого:

$('html')
  .delay(6000)
  // If the user has scrolled down, do nothing. Otherwise scroll to element
  .queue(function(next) {
    if ($(window).scrollTop() > 0) {
      return;
    } else {
      next();
    }
  })
  .animate(
    {
      scrollTop: $('#introduction').offset().top,
    },
    1000,
    'swing',
  );

Что касается ease-in-out анимации, вам нужно JqueryUI для этого. swing и linear - это функции замедления, поддерживаемые библиотекой Jquery.

...