Si l’élément est dans la fenêtre d’affichage, arrêtez l’animation de défilement

Bonjour, j’ai suivi un tutoriel: http://css-sortingcks.com/slide-in-as-you-scroll-down-boxes/

Cela fonctionne très bien, cependant, quand un élément est déjà dans la fenêtre (comme si le navigateur est petit et que la page est chargée), jQuery n’ajoute pas la CLASSE à la transition avant le défilement APRES.

Existe-t-il un moyen de vérifier si un élément est déjà dans la fenêtre en charge, puis d’append une classe de ‘déjà vu?’

Essayer

var viewed = Array.prototype.map.call(document.querySelectorAll("body *") , function (el, i) { return (el.getBoundingClientRect().bottom <= window.innerHeight && el.getBoundingClientRect().left <= window.innerWidth) && $(el).addClass("already-viewed") && el }).filter(Boolean); 
 $(document).ready(function () { var body = $("body"); $.each(new Array(180), function () { body.append( $("")) }); var viewed = Array.prototype.map.call(document.querySelectorAll("body *"), function (el, i) { return (el.getBoundingClientRect().bottom <= window.innerHeight && el.getBoundingClientRect().left <= window.innerWidth) && $(el).addClass("already-viewed") && el }).filter(Boolean); body .append("total images: " + $("img").length + ", already viewed: " + $(".already-viewed").length); console.log(viewed.length, $(viewed)) }); 
 body { width : 1000px; height : 1000px; } img { width : 50px; height : 50px; background : navy; } .already-viewed { outline:0.15em solid red; }