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

$(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 );
  }
});


我在这里想念什么?感谢您的想法!

最佳答案

对于每个滚动事件,您的标志始终设置为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 );
    }
});

关于javascript - jQuery触发动画一次滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24740888/

10-11 11:56