Je remplace un fichier jpg par un fichier gif animé lorsque le conteneur div apparaît dans la fenêtre. Ça marche. Important: le fichier gif n'a pas de boucle. Mon problème: lorsque vous faites défiler à nouveau, même un peu, vers le haut ou vers le bas, le remplacement joue à nouveau. Existe-t-il une solution simple pour arrêter cet événement après le premier remplacement? MerciComment puis-je jouer une seule fois à l'animation?
jQuery(document).ready(function($){
\t
\t var $window = $(window);
\t var $elem = $(".animated")
\t \t function isScrolledIntoView($elem, $window) {
\t \t \t var docViewTop = $window.scrollTop();
\t \t \t var docViewBottom = docViewTop + $window.height();
\t \t \t var elemTop = $elem.offset().top;
\t \t \t var elemBottom = elemTop + $elem.height();
\t \t \t return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
\t \t }
\t $(document).on("scroll", function() {
\t \t if (isScrolledIntoView($elem, $window)) {
\t \t \t $("#graph1").attr("src","images/graphsSECHE_500x500_noloop2.gif");
\t \t }
\t \t
\t });
});
définissez un booléen global et définissez-le sur true ou false selon que vous avez lu la vidéo ou non, puis ajoutez-le à votre chèque – Pete
ou si c'est littéralement juste un élément qui change, vous pouvez dissocier le gestionnaire d'événement scroll sur le document une fois qu'il a été utilisé une fois? –
ou similaire au commentaire de Pete, mais vous pouvez affecter les données à l'élément lui-même en utilisant la fonctionnalité de données de jquery, puis vérifier que par élément. Cela permet alors d'affecter de nombreux éléments de manière indépendante. –