нашел функцию , до конца не понимаю как она работает кто может помочь сказать почему не работает мне надо чтобы скрул работал не чаше чем рас в 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 );
});