jquery - 在页面滚动时多次执行的函数

时间:2014-10-12 20:27:48

标签: jquery jquery-animate

需要你的帮助,所以,我有以下代码,它识别用户向下或向上滚动,然后滚动可编辑的div向下或向上。我动画可编辑的div显示并炫耀,但是当我滚动页面时很多次执行该功能,这妨碍了导致延迟的动画。如何在滚动时只执行一次函数?

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

$(window).scroll(function() {
    var scroll = $(window).scrollTop();
    if(scroll > position) {
        $("#textarea").animate({'top': '-75' + 'px'}, 500);
    } else {
        $("#textarea").addClass('fixed').animate({'top': '75' + 'px'}, 500);
    };
    position = scroll;
});

这是一个小提琴:http://jsfiddle.net/s92e88Le/

1 个答案:

答案 0 :(得分:0)

使其成功:

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

$(window).scroll(function() {
    var scroll = $(window).scrollTop();
    var isWorking = 0;

    if(scroll > position) {
        $("#textarea").animate({'top': '-25' + 'px'}, 70);
    } else {
        if(isWorking == 0) {
            isWorking = 1;
            $("#textarea").addClass('fixed').animate({
                'top': '75' + 'px'},
                70, function() {
                isWorking = 0;
            });
        }
    };
    position = scroll;
});