Javascript 当您再次滚动到顶部时,是否有任何方法使此div返回

Javascript 当您再次滚动到顶部时,是否有任何方法使此div返回,javascript,jquery,scroll,jquery-animate,Javascript,Jquery,Scroll,Jquery Animate,所以我把这个div动画完全从页面中拿出来了,但是每当我向上滚动时,它仍然在页面外,我尝试了if/else语句,但是没有返回,有人能帮我吗 提前谢谢 $(document).ready(function(){ $(window).scroll(function(){ if ($(window).scrollTop() > 300){ $('.offer').stop().animate({ top: '+= 10' }, 10, "linear

所以我把这个div动画完全从页面中拿出来了,但是每当我向上滚动时,它仍然在页面外,我尝试了if/else语句,但是没有返回,有人能帮我吗

提前谢谢

$(document).ready(function(){
    $(window).scroll(function(){
        if ($(window).scrollTop() > 300){
            $('.offer').stop().animate({ top: '+= 10' }, 10, "linear");
        }
        else if ($(window).scrollTop() < 300){
            $('.offer').stop().animate({ top: '-=10' }, 10, "linear");
        }
    });
});
$(文档).ready(函数(){
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()>300){
$('.offer').stop().animate({top:'+=10'},10,“线性”);
}
else if($(窗口).scrollTop()<300){
$('.offer').stop().animate({top:'-=10'},10,“线性”);
}
});
});

问题在于,每次触发滚动事件时,您都会从该位置添加或删除
10

您应该做的是设置一个标记,例如
is Furthan 300
,用于跟踪位置是在您的截止日期之前还是之后


然后,仅当
的更改超过300时才执行动画。

请尝试以下代码

$(document).ready(function(){
 //Keep track of last scroll
  var lastScroll = 0;
  $(window).scroll(function(){
    var st = $(window).scrollTop();
    if (st > lastScroll){
        $('.offer').stop(true).animate({ top: '+= 100px' }, 10, "linear");
    }
    else{
        $('.offer').stop().animate({ top: '-=100px' }, 10, "linear");
    }
    //Updates scroll position
    lastScroll = st;
  });
});

希望有帮助

你能展示一下不工作的小提琴吗?是的,这里是:是的,这完全是有道理的,唯一的问题是我根本没有创建旗帜的经验,这是我走了多远,但后来我几乎被卡住了。嗯,它有点工作,但元素不再快速向上滚动,尝试了一些不同的数字,但不太有效。还不完全有效,请看这里的一把代码,当你向下滚动时,它应该向上滚动(与正常元素一样快),当你向上滚动时,它应该处于与以前完全相同的位置。你有这个主意吗?