Check by event scroll

0

I need to perform certain action when scrolling. For this it would be enough to add document.onscroll = () = { console.log("scrolling"); } . But if the function is very long I guess it would hurt the performance. I want to know if there is a way to know if it is scrolled, apart from adding the onscroll event and which of these two ways would be more efficient in terms of performance:

this.setInterval(() => {
     console.log("is scrolling?");
}, 1000);

 document.onscroll = () => {
     console.log("scrolling");
 }
<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.</p>

<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.</p>

<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no</p>

I need to know in that code in the interval if the onscroll event is running.

    
asked by Theia 20.07.2017 в 17:56
source

1 answer

0

With the following code you can know if in the interval EXECUTE the event scroll , now if you want to know if you are RUNNING the event scroll (as you request in your question) I recommend you change the logic of your program because in this last case you do not need to place a setInterval() , you just have to handle what you want in the event onscroll() .

Example:

var lastEvent = {};
this.setInterval(() => {
     console.log("is scrolling?");
     if (lastEvent.type == "scroll") {
         console.log("yes!! ;))");
         lastEvent = {};
     } else {
         console.log("no.. :((");
     }
}, 1000);

document.onscroll = (evt) => {
    console.log("scrolling");
    lastEvent = evt;
}
<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.</p>

<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.</p>

<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no</p>

I hope this helps you, Greetings !! ;)) ...

EDIT:

var lastEvent = {};
this.setInterval(() => {
     console.log("is scrolling?");
     if (lastEvent.type == "scroll") {
         console.log("yes!! ;))");
         lastEvent = {};
     } else {
         console.log("no.. :((");
     }
}, 1000);

document.onscroll = (evt) => {
    lastEvent = evt;
}
<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.</p>

<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.</p>

<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no</p>
    
answered by 20.07.2017 в 19:44