JSFiddle - React, Tailwind, and code Playground

by dpnminh

JavaScript

function debounce(func, wait, immediate = false){
	var timeout;
  
  return function(){
  	var context = this, args = arguments;
    var callNow = immediate && !timeout;
    var later = function(){
    	timeout = null;
      if (!immediate){ 
      	func.apply(context, args);
      }
    };
    
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
    
    if (callNow){
    	func.apply(context, args);
    }
  }
}

function handleScroll(){

}

var handleScrollListener = debounce(handleScroll, 200);

window.addEventListener('scroll', handleScrollListener);