Snippets Collections
const images = document.querySelectorAll('.slide-in');

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


function checkSlide(e){
  images.forEach((image) => {
    const slideInAt = (window.scrollY + window.innerHeight) - image.height / 2;
    console.log(slideInAt)
  })
}



window.addEventListener('scroll', debounce(checkSlide))
function debounce(func, wait, immediate) {
  var timeout;

  return function executedFunction() {
    var context = this;
    var args = arguments;
	    
    var later = function() {
      timeout = null;
      if (!immediate) func.apply(context, args);
    };

    var callNow = immediate && !timeout;
	
    clearTimeout(timeout);

    timeout = setTimeout(later, wait);
	
    if (callNow) func.apply(context, args);
  };
};
star

Tue Mar 21 2023 23:59:48 GMT+0000 (Coordinated Universal Time)

#scrolling #debounce
star

Mon Aug 09 2021 08:23:23 GMT+0000 (Coordinated Universal Time) https://www.educative.io/edpresso/how-to-use-the-debounce-function-in-javascript

#javascript #debounce

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension