Partage
  • Partager sur Facebook
  • Partager sur Twitter

Condition IntersectionObserver sur l'Entry

Sujet résolu
    12 septembre 2022 à 18:43:42

    Bonjour à tous! 

    Je suis un peu bloqué à un moment dans mon code sur un Intersection Observer. 

    Je souhaite avoir une condition else if ou mon entry est le premier enfant de son parent, j'ai procédé ainsi: 

    			new IntersectionObserver( (entries) => {
    				entries.forEach(entry => {
    					if (entry.isIntersecting) {
    
    						history.pushState(null,null,"?img=" + entry.target.querySelector('.module').id);
    					} else if (entry.isIntersecting && entry.target == entry.target.parentNode.firstElementChild){
    						history.pushState(null,null,window.location.pathname);
    					}
    					 else {
    						bullet.classList.remove('bullet--active')
    					}	
    				});
    			}, { threshold: .5 }).observe(row);
    		});	

    En vérifiant avec la console, ma entry.target et entry.target.parentNode.firstElementChild sont bien ==. Surement une erreur de syntaxe mais je n'arrive pas à voir où… 


    UPDATE: 

    J'ai également essayé avec:

    let rowsModule = document.querySelectorAll('.grid__row')

    et

    else if (entry.isIntersecting && entry.target == rowsModule[1]
    else if (entry.isIntersecting && entry.target == rowsModule[0]

    Mais cela ne fonctionne pas non plus :)


    Si jamais :) 


    Merci d'avance!



    UPDATE: 


    UPDATE: 

    Fixed avec ce move: 

    			new IntersectionObserver( (entries) => {
    				entries.forEach(entry => {
    					if (entry.isIntersecting && entry.target != entry.target.parentNode.firstElementChild) {
    						caption.innerHTML = '';
    						caption.append(textRow);
    						history.pushState(null,null,"?img=" + entry.target.querySelector('.module').id);
    						bullet.classList.add('bullet--active');
    						console.log(entry.target)
    
    					} else if (entry.isIntersecting && entry.target == entry.target.parentNode.firstElementChild){
    						history.pushState(null,null,window.location.pathname);
    						caption.innerHTML = '';
    						caption.append(textRow);
    						bullet.classList.add('bullet--active');
    						console.log(entry.target)
    					}
    					 else {
    						bullet.classList.remove('bullet--active')
    					}	
    				});
    			}, { threshold: .5 }).observe(row);




    -
    Edité par valentinp75 12 septembre 2022 à 19:06:04

    • Partager sur Facebook
    • Partager sur Twitter

    Condition IntersectionObserver sur l'Entry

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown