Подтвердить что ты не робот

Захват события "прокрутки вниз"?

Я разрабатываю очень простую веб-страницу (только для HTML), единственная "функция", которую я хочу реализовать, - это что-то делать, когда пользователь прокручивает страницу вниз, есть ли способ захватить это "событие" каким-то образом?

4b9b3361

Ответ 1

Просто для полноты, есть другое решение, использующее другую структуру JS (Mootools)

window.addEvent('scroll',function(e) {
    //do stuff
});

Ответ 2

Если вы не хотите использовать jQuery (который вы не можете сделать для очень простой HTML-страницы), вы можете выполнить это, используя обычный Javascript:

<script>
function scrollFunction() {
    // do your stuff here;
}

window.onscroll = scrollFunction;
</script>

Вы упомянули, что хотите что-то сделать, когда прокручиваете страницу вниз, - событие onscroll запускает прокрутку в любом направлении по оси x или y, поэтому ваша функция будет вызываемые в любое время, когда они прокручиваются.

Если вы действительно хотите, чтобы он запускал ваш код только при прокрутке страницы, вам нужно сохранить предыдущую позицию прокрутки, чтобы сравнивать ее при каждом вызове вызова onscroll.

Ответ 3

Вы не можете сделать это только с помощью HTML, вам нужно будет использовать Javascript. Я рекомендую использовать jQuery, поэтому ваше решение может выглядеть следующим образом:

$(document).ready(function() {
    $(window).scroll(function() {
      // do whatever you need here.
    });
});

Если вы не хотите или не можете использовать jQuery, вы можете использовать решение onscroll, отправленное Anthony.

Ответ 4

Лучше всего не только проверять события прокрутки, но и прокручивать направление, как показано ниже;

$(window).bind('mousewheel', function(event) {
if (event.originalEvent.wheelDelta >= 0) {
    console.log('Scroll up');
}
else {
    console.log('Scroll down');
}
});

Ответ 5

Это работает для меня.

var previousPosition

$(window).scroll(function(){
  var currentScrollPosition=$(window).scrollTop() + $(window).height()
  if (currentScrollPosition>previousScrollPosition) {
    console.log('down')
  }else if(currentScrollPosition<previousScrollPosition){
    console.log('up')
  }
  previousScrollPosition=currentScrollPosition
});