"" lag "" au scroll

Yo
Je suis en train de faire un site pour une sorte de médium un peu taré mais pas méchant pour un sou.
Je rencontre un problème au niveau de la conception de ce site,
j’ai des animations qui se lancent au scroll (en occurrence la couleur, l’opacité) le seul problème c’est que ça fait « « laguer » » le site au déroulement de la page
Je vous mets ci-dessous le js



window.addEventListener('scroll', function(e) {



if(window.scrollY < 400){

text.classList.remove("opacity")

}

if(window.scrollY > 400){

text.classList.add("opacity")

}

if(window.scrollY > 800){

content.classList.add("opacity")

}

if(window.scrollY > 1800){

for(let i = 0; i < 3; i++){

moreInfoImgAll[i].classList.add("visi")

}

}

if(window.scrollY < 1800){

for(let i = 0; i < 3; i++){

moreInfoImgAll[i].classList.remove("visi")

}



}



lastScroll = window.scrollY;

this.console.log(lastScroll)

})

Poster un commentaire
anonyme
anonyme
4 ans

Ton code pourrait être optimisé, notamment si chaque animation est un onetime
Déjà, a partir de 400, à chaque scroll tu trigger la première condition, pareil à 800, et pareil à 1800
Et tant que t'es sous 1800, la dernière est active à chaque fois
On peut en savoir plus sur l'effet voulu ?

lestercoraire

@rekted: changement de largeur d'opacité et de couleur

Hqro
Hqro
4 ans

Ensuite tes boucles sont dégeulasses et incompréhensibles, utilise un querySelectorAll pour obtenir un itérable de DomNode

lestercoraire

@Hqro:
Merci pour tes conseils je vais voir ça !

Hqro
Hqro
4 ans

@lestercoraire: Je te conseille aussi de te baser sur le scroll depuis un élément plutôt que depuis la fenêtre entière. C'est plus safe.

Hqro
Hqro
4 ans

Pour finir le scroll c’est un événement assez violent. D’ailleurs tu dois le voir dans ton console.log. La valeur bouge très vite, tu devrais utiliser un debounce ou un throttle.

Hqro
Hqro
4 ans

Déjà utilise contains pour vérifier si les classes sont présentes https://developer.mozilla.org/en-US/docs/Web/API/Element/classList. Ça évitera d’ajouter les classes plusieurs fois

anonyme
anonyme
4 ans

@Hqro: je pense pas que ça change quoi que ce soit étant donné que add fait la verification avant.

Pouki
Pouki
4 ans

A chaque fois que je vois du js j'ai envie de me passer les couilles dans une meuleuse pour tenter de passer un meilleur moment.

Hqro
Hqro
4 ans

@Pouki: le problème c'est pas le JS, c'est les gens qui développent comme lui

lestercoraire

@Hqro:

IMG
Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.