反跳返回计时器

时间:2019-07-08 10:21:46

标签: javascript jquery

我不了解操作原理。我有一个代码,其中在扭曲期间必须创建2秒钟的延迟,但是在延迟脚本中,使用去抖动脚本不能正常工作,但是由于某种原因,它总是返回一些计时器,而不是去抖动脚本接受的函数的答案

function debounce(f, ms) {
  let timer = null;

  return function(...args) {
    const onComplete = () => {
      f.apply(this, args);
      timer = null;
    }

    if (timer) {
      clearTimeout(timer);
    }

    timer = setTimeout(onComplete, ms);
  };
}

var delay = false;

$('.window').on('mousewheel', function(event) {
  var pozition = $(document).scrollTop();
  var block2 = $(".main_step").offset().top
  var elemId = $(this).attr('id'),
    scrollDir = event.deltaY;
  var indicatorL = $(".indicator_main").data("counter");

  if (elemId == 'steps' && scrollDir < 0 && delay === false) {

    if (indicatorL != "4") {
      $("#sli-" + indicatorL).css("display", "none");

      indicatorL = indicatorL + 1;
      $("#sli-" + indicatorL).css("display", "block");
      $(".indicator_main").data("counter", indicatorL);
      $(".indicator_main").animate({
        "left": "+=25%"
      }, "slow");
      $(".indicator_num").text("0" + indicatorL);
      $(".step_nr").text("0" + indicatorL);
    }
  }

  delay = true;
  var f = function() {
    var delay = false;
    return delay;
  };

  delay = debounce(f, 2000);
  console.log(delay);
});

0 个答案:

没有答案