如何循环窗口加载Jquery函数

时间:2015-06-03 14:10:16

标签: javascript jquery window settimeout

我在窗口滚动监听器上设置了这个功能,我试图设置超时是为了回忆它但是到目前为止我似乎无法解决它,任何想法,提前谢谢!

// functions:
var $delayAnimate = function(el, time, effect) {
  el.delay(time)
    .queue(function(next) {
      $(this).addClass(effect);
      next();
    });
};

// function for multi animations
var multiAnimations = function(el, setTime, ef) {
  var i = 0;
  el.each(function (key, value) {
    i = i + setTime;
    $delayAnimate($(this), i, ef);
  });
};

// load on window height
var onWindowAnimate = function (h, el, setTime, ef) {
  if ($(this).scrollTop() > h) {
    // call multi animations function
    multiAnimations(el, setTime, ef);
  }
};

// get img's
var $affiliateSection = $("#aff-img > li > img");
$(window).scroll(function () {
  onWindowAnimate(200, $affiliateSection, 300, 'subtlefadeIn');
});

1 个答案:

答案 0 :(得分:3)

很难理解你想要什么,但如果我是对的......

暂停:

$(window).scroll(function () {
    setTimeout(function(){
        onWindowAnimate(200, $affiliateSection, 300, 'subtlefadeIn');
    }, 1000);
});

如果你想在开始新的超时之前等待每个超时结束:

$(window).scroll(function () {
    clearTimeout($.data(this, 'AnimationTimer'));
    $.data(this, 'AnimationTimer', setTimeout(function () {
        onWindowAnimate(200, $affiliateSection, 300, 'subtlefadeIn');
    }, 1000));
});