检测滚动方向时出错

时间:2014-06-01 05:58:01

标签: javascript jquery

通过这个问题 - How can I determine the direction of a jQuery scroll event?,我写了这段代码。

var lastS=$(window).scrollTop();

function whatHappened()
{
    var currentS=$(window).scrollTop();
    console.log(lastS,currentS);

    if(currentS>lastS)
    {
       lastS = currentS;
       return "Scroll down";
    }
    else
    {
        lastS = currentS;
        return "Scroll up";
    }
}

$(window).on("mousewheel",function(){
    console.log(whatHappened());
});

这似乎工作正常,但有一个小问题。如果我向下滚动两次以上,然后向上滚动,则首先向下滚动,然后向上滚动。反之亦然。 怎么了? 请帮忙。提前谢谢。

JS小提琴:http://jsfiddle.net/3843e/

1 个答案:

答案 0 :(得分:0)

鼠标滚轮事件是非标准的 - 在您的情况下,它可能会在滚动信息更新之前被触发,因此您始终在"之前的"滚动高度。