jquery animate非常多动

时间:2016-04-02 09:26:22

标签: javascript jquery

我正在使用JQuery动画在滚动100或更多像素时向下渲染图像。然后,当我滚动回到顶部时,它需要返回原始状态。而不是在回来的路上,它只是一遍又一遍地上下,直到它最终停止。

我该如何解决?



$(document).ready(function() {
  $(window).scroll(function() {
    if ($(this).scrollTop() >= 100) {
      //alert('scrolled');
      $('.flipje_pas_image').animate({
        top: -50
      }, 1000);
    }
    if ($(this).scrollTop() < 100) {
      $('.flipje_pas_image').animate({
        top: -450
      }, 1000);
    }
  });
});
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

你需要使用一个布尔状态,当遇到if条件时会翻转,这会使动画发生一次而不是滚动事件

像这样

  

$(document).ready(function(){     var once = false;     $(window).scroll(function(){

if ($(this).scrollTop() >= 100) {
  //alert('scrolled');
  if(!once){
    once = true
      console.log('ssd' , once)

      $('.flipje_pas_imag').animate({
      top: -50
    }, 1000);
  }

}
if ($(this).scrollTop() < 100) {
  if(once){
    once = false;

    $('.flipje_pas_imag').animate({
    top: -450
  }, 1000); 
  }

}

}); });