Je travaille sur le défilement javascript. Je suit le code htmljavascript window scroll numéro
<div class="wrapper">
<div class="red div current"></div>
<div class="blue div"></div>
<div class="green div"></div>
<div class="yellow div"></div>
</div>
Dans le code ci-dessus, j'ai quatre balises div red, blue, green and yellow
. Tous sont en position dans css suivant.
html, body {
height: 100%;
}
.wrapper {
overflow: hidden;
height: 100%;
}
.div {
position: relative;
height: 100%;
}
.red {
background: red;
}
.blue {
background: blue;
}
.green {
background: green;
}
.yellow {
background: yellow;
}
en html ci-dessus et css la balise div rouge est l'actuel qui signifie que l'utilisateur voit la balise div rouge sur l'écran. Maintenant, ce que j'essaie de faire, c'est que l'utilisateur fasse défiler la fenêtre une fois, puis la prochaine balise div, c'est-à-dire bleu, sera animée et sera visible par l'utilisateur, tandis que l'étiquette rouge sera derrière la bleue. Ce même processus va à la fois pour le vert et le jaune. Le problème est que lorsque l'utilisateur fait défiler une fois, la balise div devrait s'animer, mais mon code javascript actuel continue de lire le parchemin et d'animer les balises div l'une après l'autre. Ce que je veux, c'est que l'utilisateur fasse défiler une fois, puis que le défilement soit désactivé jusqu'à ce que la balise div bleue soit animée. Ensuite, le défilement devrait être activé. Encore une fois lorsque l'utilisateur fait défiler la deuxième fois, le défilement doit être désactivé jusqu'à ce que l'étiquette verte div termine son animation. Idem pour le jaune.
Comment puis-je réaliser ci-dessus?
Voici mon javascript
$(window).on("scroll", function() {
var next = $('.current').next();
var height = next.outerHeight();
next.animate({top: '-=' + height}, 500, function() {
$(this).prev().removeClass('current');
$(this).addClass('current');
});
});
ça ne marche pas, je veux. C'est actuellement quand je défile une fois qu'il change de balise div en balise bleue puis en rouge. – 2619