Jquery在滚动时触发动画一次

时间:2014-07-14 16:06:45

标签: javascript jquery html css

尝试在滚动时触发一次动画,但会多次触发。

$(window).scroll(function(){
  var y = $(window).scrollTop();
  var flagscroll=true;
  if( y < 30 && y > 20 && flagscroll==true ) {
        flagscroll=false;
       $('[data-label="SearchPanel"]').animate({ 
            top: "-=34px",
        }, 200 );
  }
});

我在这里缺少什么?谢谢你的想法!

2 个答案:

答案 0 :(得分:3)

对于每个滚动事件,您的标志始终设置为true。您必须将初始化放在事件函数声明之外:

var flagscroll=true;

$(window).scroll(function(){
    var y = $(window).scrollTop();
    if( y < 30 && y > 20 && flagscroll==true ) {
        flagscroll=false;
        $('[data-label="SearchPanel"]').animate({ 
            top: "-=34px",
        }, 200 );
    }
});

答案 1 :(得分:0)

var flagscroll=true;

之前设置$(window).scroll

var flagscroll=true;
$(window).scroll(function(){
var y = $(window).scrollTop();
if( y < 30 && y > 20 && flagscroll==true ) {
    flagscroll=false;
   $('[data-label="SearchPanel"]').animate({ 
        top: "-=34px",
    }, 200 );
}
 });