Предупреждение jQuery после прокрутки 100 пикселей

Возможно ли запустить предупреждение после того, как пользователь прокрутит 100 пикселей.

Вот что у меня есть, но я знаю, что что-то не хватает,

$(window).scroll(function() {
    if (document.documentElement.clientHeight + 
        $(document).scrollTop() == "100px")
    { 
        alert("You've scrolled 100 pixels.");
    }
});

Ответы

Ответ 1

Посмотрите на окно .scrollTop(возвращает целое число):

$(window).scroll(function() {
    if ($(this).scrollTop() === 100) { // this refers to window
        alert("You've scrolled 100 pixels.");
    }
});

но если вы прокрутили 102px, это не вызовет предупреждение.

Если вы просто хотите вызвать предупреждение, у вас есть глобальная переменная, которая устанавливает значение true, если она была запущена:

$(function(){
    var hasBeenTrigged = false;
    $(window).scroll(function() {
        if ($(this).scrollTop() >= 100 && !hasBeenTrigged) { // if scroll is greater/equal then 100 and hasBeenTrigged is set to false.
            alert("You've scrolled 100 pixels.");
            hasBeenTrigged = true;
        }
    });
});

или просто отменить событие прокрутки после запуска окна предупреждения:

$(function(){
    $(window).bind("scroll.alert", function() {
        var $this = $(this);
        if ($this.scrollTop() >= 100) {
            alert("You've scrolled 100 pixels.");
            $this.unbind("scroll.alert");
        }
    });
});

Ответ 2

Попробуйте следующее:

$(document).scrollTop() >= 100) {
    // ...
}

scrollTop() возвращает целое число. Эта версия будет оцениваться как истина, если вы прокрутили 100px, что может быть более подходящим.

Ответ 3

попробуйте

document.documentElement.clientHeight + $(document).scrollTop() == 100