4

我有一个简单的问题,但我找不到解决方案......我只想在向上滚动页面并“触摸”它的顶部时启动一个事件(执行一个方法)。我在我的页面中使用 JavaScript 和 jQuery。提前致谢 !

4

3 回答 3

9

使用 onscroll 事件。香草js示例:

window.onscroll = function() {
    if(document.body.scrollTop == 0) {
        alert('yay!');
    }
}

http://jsfiddle.net/kuWuf/

于 2013-02-27T21:50:06.730 回答
9

您应该为此目的使用滚动事件:

$(window).scroll(function() {
    if ($(this).scrollTop() == 0) {
        //Do whatever you want to do
    }
});

您应该注意的一件事是,当有人连续滚动到顶部时,即使您只希望在顶部被击中时也会触发,为此您可以将事件处理程序定义为一个函数并将最后一个滚动顶部值放入函数局部变量。

$(window).scroll(handleHitTop);

function handleHitTop(event) {
    var currentScrollTopValue = $(this).scrollTop();

    if (handleHitTop.lastTop === undefined) {
        handleHitTop.lastTop = currentScrollTopValue ;

        return;
    }

    if (handleHitTop.lastTop == 0 && currentScrollTopValue == 0) {
        return;
    }

    handleHitTop.lastTop = currentScrollTopValue;

    if (handleHitTop.lastTop == 0) {
        //Call your event here
    }
}
于 2013-02-27T22:11:44.933 回答
6

使用.scroll()处理程序和.scrollTop()

$(window).scroll( function() {
    if($(this).scrollTop() == 0) {
        alert("Top!!!");
    }
});

http://jsfiddle.net/jtbowden/wvJ9r/

于 2013-02-27T21:50:18.210 回答