Je veux vérifier si un élément défile vers le haut avec un décalage de ~ 100px.
J'ai une page avec 5 sous-contenus et 2 classes pour créer des arrière-plans. Cela ressemble à ceci:
<div class="background1">
Content1
</div>
<div class="background2">
Content2
</div>
<div class="background1">
Content3
</div>
<div class="background2">
Content4
</div>
<div class="background1">
Content5
</div>
Maintenant, je veux vérifier, quand l'une de ces classes atteint le sommet en faisant défiler
Ceci est l'un de mes derniers essais:
$('.background1', '.background2').position(function(){
if($(this).position().top == 100){
alert('checkThis');
}
});
Je pense que c'est mon essai le plus proche maintenant ... bien sûr, ce code est dans document.ready et à la fin de mon code ....
TLDR: Comment vérifier si un élément a défilé vers le haut (et un certain décalage)?
Vous devez écouter l'événement de défilement, puis comparer chaque élément par rapport à la distance actuellement défilée, quelque chose comme:
$(window).on('scroll', function() {
var scrollTop = $(this).scrollTop();
$('.background1, .background2').each(function() {
var topDistance = $(this).offset().top;
if ( (topDistance+100) < scrollTop ) {
alert( $(this).text() + ' was scrolled to the top' );
}
});
});