Changer l'opacité d'une div lors du scroll
Fermé
Eritou
Messages postés
110
Date d'inscription
samedi 20 décembre 2014
Statut
Membre
Dernière intervention
29 septembre 2023
-
8 sept. 2015 à 20:50
Eritou Messages postés 110 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 29 septembre 2023 - 9 sept. 2015 à 19:56
Eritou Messages postés 110 Date d'inscription samedi 20 décembre 2014 Statut Membre Dernière intervention 29 septembre 2023 - 9 sept. 2015 à 19:56
A voir également:
- Changer l'opacité d'une div lors du scroll
- Changer dns - Guide
- Changer clavier qwerty en azerty - Guide
- Changer carte graphique - Guide
- Changer extension fichier - Guide
- Changer wifi chromecast - Guide
2 réponses
B'soir,
c'est juste des math:
Pour avoir un rapport pour 80px c'est
(1*nombre pixels défilés/80)
En code
Sauf que ça peut poser des problèmes une opacité supérieure à 1(=100% on peut pas faire plus opaque).
alors on rajouter une condition si c'est le cas
c'est juste des math:
$(document).on('scroll',function(){ //---quand ça bouge opacite = 1 - ( $(document).scrollTop() / $("#contenu").outerHeight( true ) ) ; /*----------- on calcule le rapport scrollTop() c'est le nombre de pixels depuis le haut de la page outerHeight(true) c'est la hauteur totale(maxi) de la page 1 pour une opacité de 100%(visible), 0.5 pour 50%(transparence de moitié etc..). */ $('#white').css('opacity', opacite); // ---change la valeur de l'opacité en CSS pour le rapport calculé sur 1 });
Pour avoir un rapport pour 80px c'est
(1*nombre pixels défilés/80)
En code
opacite = 1 - ( $(document).scrollTop() / 80 ) ; $('#white').css('opacity', opacite);
Sauf que ça peut poser des problèmes une opacité supérieure à 1(=100% on peut pas faire plus opaque).
alors on rajouter une condition si c'est le cas
; if(opacite>$(document).scrollTop()){ opacite=1; }else{ opacite = 1 - ( $(document).scrollTop() / 80 ) } $('#white').css('opacity', opacite);
Eritou
Messages postés
110
Date d'inscription
samedi 20 décembre 2014
Statut
Membre
Dernière intervention
29 septembre 2023
4
9 sept. 2015 à 19:56
9 sept. 2015 à 19:56
Bonsoir Venega et merci pour toutes ces explications :)
Si j'ai bien compris, le script devrait être :
Avec ceci, #white est bien d'une opacité:0, mais lors d'un scroll de qq pixels, la div devient d'une opacité d'environ 0.9 jusqu'à atteindre 0 quand on scrolle de 80 px (sorte de transition). Par contre, si après on scrolle vers le haut, la div est bien opaque (???) alors qu'elle devrait être "transparente" à top:0 (et donc opaque à Top:80px).
Cela viendrait-il de mes CSS ?
Merci pour ton aide et bonne soirée,
E.
Si j'ai bien compris, le script devrait être :
$(document).on('scroll',function(){ opacite = 1 - ( $(document).scrollTop() / 80 ); $('#white').css('opacity', opacite); if(opacite>$(document).scrollTop()){ opacite=1; }else{ opacite = 1 - ( $(document).scrollTop() / 80 ) } $('#white').css('opacity', opacite); });
Avec ceci, #white est bien d'une opacité:0, mais lors d'un scroll de qq pixels, la div devient d'une opacité d'environ 0.9 jusqu'à atteindre 0 quand on scrolle de 80 px (sorte de transition). Par contre, si après on scrolle vers le haut, la div est bien opaque (???) alors qu'elle devrait être "transparente" à top:0 (et donc opaque à Top:80px).
Cela viendrait-il de mes CSS ?
Merci pour ton aide et bonne soirée,
E.