Ciao, l'animazione avviene per ogni HR su caricamento di pagina. Quello che servirebbe a te, sarebbe riuscire a determinare la visibilità dell'elemento a video. Se non erro non esiste una funzione che faccia questo. Se vuoi puoi provare con questa funzione che avevo usato per una cosa simile
codice:
var isOnScreen = function (selector, percentage) {
if (!selector || $(selector).length < 1) return false;
if(!percentage || isNaN(percentage)) percentage = 100;
var windowHeight = $(window.top).height();//window height
var el = $(selector).get(0);//Element
if(!el){
console.error('isOnScreen element not found')
return false;
}
el = $(el);
var elHeight = el.height(); //Element height
var elCurrentTopDistance = el.offset().top - $(window.top).scrollTop();
var treshold = Math.ceil(elHeight*percentage/100);
requiredDistance = elCurrentTopDistance + treshold;
return ( (requiredDistance > 0) && (requiredDistance < windowHeight) );
};
Dove selector è il selettore usato con jquery e percentage la percentuale minima dell'elemento visibile del caso.
Quindi in teoria dovresti modificare per richiamare la funzione per esempio una volta al rdy e poi sullo scroll di pagina (ovvimente coi controlli in base se già eseguita o meno).