Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery alert after 100 pixels scrolled

Is it possible to fire an alert after a user scrolls 100 pixels.

Here's what I have so far but I know I'm missing something;

$(window).scroll(function() {
    if (document.documentElement.clientHeight + 
        $(document).scrollTop() == "100px")
    { 
        alert("You've scrolled 100 pixels.");
    }
});
like image 241
Jay Avatar asked Feb 21 '12 09:02

Jay


1 Answers

Look at the window .scrollTop (returns an integer):

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

but if you have scrolled 102px it wont trigger the alert box.

if you just want to trigger the alert once have a global variable that sets to true if it has been trigged:

$(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;
        }
    });
});

or just unbind the scroll event once the alert box has been trigged:

$(function(){
    $(window).bind("scroll.alert", function() {
        var $this = $(this);
        if ($this.scrollTop() >= 100) {
            alert("You've scrolled 100 pixels.");
            $this.unbind("scroll.alert");
        }
    });
});
like image 151
voigtan Avatar answered Nov 06 '22 00:11

voigtan