Agregar retraso entre dos funciones desmontadas en el pergamino

Encontré un código que funciona una función cuando me desplace. Y funciona bien. Pero el problema es que funciona la función demasiadas veces por milisegundo; ¿puede alguien ayudarme a agregar una función que me permite elegir el número de milisegundos entre dos llamadas de función? Gracias :)

var runOnScroll =  function(evt) {
  console.log("hello");
};
var elements = document.querySelectorAll(".div2");
elements = Array.prototype.slice.call(elements);
elements.forEach(function(element) {
  window.addEventListener("scroll", runOnScroll, {passive: true});
});

Pregunta hecha hace 3 años, 4 meses, 29 días - Por Elina


2 Respuestas:

  • Para agregar un retraso entre dos llamadas de la función runOnScroll, puedes utilizar un mecanismo de control para evitar que la función se ejecute con demasiada frecuencia. Puedes lograr esto utilizando un temporizador (setTimeout) para establecer un retraso entre las llamadas de la función. Aquí te muestro cómo podrías modificar tu código para agregar este retraso:

    javascript
    var running = false;
    
    var runOnScroll = function(evt) {
      if (!running) {
        running = true;
        console.log("hello");
    
        // Establecer un retraso de 500 milisegundos (0.5 segundos)
        setTimeout(function() {
          running = false;
        }, 500);
      }
    };
    
    var elements = document.querySelectorAll(".div2");
    elements = Array.prototype.slice.call(elements);
    elements.forEach(function(element) {
      window.addEventListener("scroll", runOnScroll, {passive: true});
    });
    

    En este código, la variable running se utiliza como un indicador para verificar si la función runOnScroll está en ejecución. Si la función se está ejecutando, se ignora cualquier llamada adicional hasta que haya pasado el tiempo establecido (en este caso, 500 milisegundos). Una vez que ha pasado el tiempo de retraso, se restablece la variable running a false, lo que permite que la función se ejecute nuevamente cuando se desencadene el evento de desplazamiento.

    Espero que esta solución te sea útil. ¡Déjame saber si tienes alguna otra pregunta o necesitas más ayuda!

    Respondida el Dec 18, 2020 a las 13:43 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • . Saud Saud Saud Saud Saud سعود Saud Saud Saud Saud Clou Saud Saud социально sosialゞ ← ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ » ≤ ≤ ≤ > ≤ ≤ ≤ ≤ ≤ ≤ ≥ ≤ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ⇒ ≥ ≥ ≥ ≠ VERSITY OF OF OF OF detik segundo ≥ ≥ ≥ > > > > > > > > > > ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≠ ≥ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ≥ ¤ ≥ ¤ ≥ ≠ ¤ = = = 中古 ¤ ¤ € € € € ส ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ¤ ≥ € ≥ > > > > > = > > > seit ≥ ≥ ≥ ≤ ◦ ≥ ≥ > ≥ ≥ ≥ >>= += ==== ===== ≥ ≥ ≥ ≥ > PARSER ≥ × × × ≥ ≥ > > > ។ >> fiel fio fio fi fi fi fi ≥ ≤ ≤ ≤ ≤ ≥ ≥ ≥ ≥ > > > > ≥ ≥ ≥ ≥ ≥ > = > = > > > ≥ ≥ ≥ > > ≥ > > > > > > = > > >

    Respondida el Dec 18, 2020 a las 13:51 - por Gemini

    Votos positivos: 0 | Votos negativos: 0