Problème de transparence à la suite [Résolu]

Signaler
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007
-
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007
-
Bonjour a tous,
Je suis entrain de me faire un petit système de notation en php. Coté php pas de soucis tout fonctionne mais j'ai envie de me faire un truc joli. En fait j'aimerai faire la même chose qu'on trouve sur les sites de la communauté Code-Source, c'est à dire la liste d'étoiles que lorsque l'on passe la souris dessus, les étoiles précédentes deviennent moins transparentes.
Pour cela j'ai réalisé un petit script qui me rend les images moins transparentes au survol de la souris, puis l'opération inverse lorsque la souris s'en va.
Voici ce que ça donne:

function transparence_dessus(var1){
effet=setInterval("effet2(var1)",60);
}

function transparence_pasdessus(var1){
clearInterval(effet);
var1.filters.alpha.opacity=60;
}

function effet2(var2){
if (var2.filters.alpha.opacity<120)
var2.filters.alpha.opacity+=10;
else if (window.effet)
clearInterval(effet);
}

alors ça unitairement avec un petit mouseover et mouseout sur l'image ça marche parfaitement: la transparence de l'étoile survolée diminue ou augmente lorsque le pointeur de souris part (bien sur il faut pour cela initialiser a la base la transparence).

Bon après ça je me suis dit "c'est gagné" il suffit de le faire pour les étoiles précédentes en récupérant les ID des ces images. Et là horreur ça ne marche pas et ça fait plusieurs heures que je galère dessus. Mon problème ne vient pas de la récupération des ID des images ou quoique ce soit non!! Pour en avoir le coeur net j'ai tapé cette fonction:

function groupe_dessus(){
transparence_dessus(document.getElementById("etoile_1"));
transparence_dessus(document.getElementById("etoile_2"));
transparence_dessus(document.getElementById("etoile_3"));
}

elle est lancée lors d'un mouseover d'une des images et quesqui se passe? je vous le donne dans le mille, seulement l'étoile 3 qui a pour ID etoile_3 à sa transparence qui diminue.
J'ai fait beaucoup de tests, d'essais et de recherche, je me suis lancé dans la voie des setTimeout sans grand succès. Si quelqu'un à une idée merci de m'aider, là je craque.

Merci d'avance

lkm

5 réponses

Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007

Désolès Scraat je n'avais pas trouvé ta source lors de mes recherches.
Je n'avais pas fait attention non plus au fait que je ne voulais pas faire exactement comme le système de notation sur ce site.
En effet pour rendre encore plus joli le truc je voulais ajouter un effet d'alpha (transparence) sur les étoiles.
Merci à jesusonline pour sa précision sur setInterval. (le setInterval sert à donner l'effet de transparence qui diminue ou augmente au fur et a mesure)
Bref, en faisant des recherches j'ai trouvé un script qui m'a permit d'enchainer les effets de transparence qui augmente ou diminue au fur et a mesure.
Grace a ça et à un peu de prog, j'ai lorsque je sélectionne par exemple la 5e étoile les 4 précédentes puis la cinquième qui ont la transparence qui diminue au fur et à mesure (elles deviennent donc + visible).
A l'inverse elles disparaissent au fur et a mesure lorsque j'enlève la souris.
Il y a encore quelques bugs qu'il faut que je résolve mais c'est très sympa à regarder.

Je déposerai une source prochainement de ce script a condition que l'auteur du script de transparence soit daccord.

Merci à ceux qui ont pris le temps de m'aider

lkm
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,

>>je vous le donne dans le mille, seulement l'étoile 3
>>qui a pour ID etoile_3 à sa transparence qui diminue.
ou qui augmente non ?
quand on passe sur l'étoile 'n' ou lorsqu'on la quitte
il faut toucher aux images de '0' à 'n-1'.
Cordialement. Bul. 
Site
Messages postés
43
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
23 novembre 2007

C'est seulement l'etoile qui a pour ID etoile_3 qui devient plus visible que les autres.
Comme tu l'as peut etre compris et de façon générale lorsque je survole l'etoile n j'aimerai que celle-ci mais également le n-1 ieme etoiles précédentes deviennent plus visibles que les n+1 ième étoiles qui suivent la n<SUP>eme.
</SUP>D'une manière plus simple si tu veux voir l'effet que je recherche selectionne une source quelconque sur ce site et regarde le système de notation de la source.

Donc pour terminer mon problème c'est que lorsque j'essai de toucher au n-1ieme puis pour finir la nieme seulement la nieme est modifiée.

Merci pour ton interet

lkm
Messages postés
51
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
4 décembre 2012

Salut,
J'ai fait il y a qqs jours un scripts qui s'appelle
SYSTEME DE NOTATION PAR ETOILES...en position 2 sur la liste des
scripts les plus récents...je pense que tu pourrais y jeter un coup
d'oeil non ?

Je n'utilise pas la transparence des images mais je fais un rollover (changement d'img). Mais le principe reste le même !

Sinon je ne comprend pas pourquoi tu utilises un setInterval dans ton code...

Cordialement, Scrat
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
comme le dit si bien Scraat : http://www.javascriptfr.com/code.aspx?ID=33933

et pour ton problème comme le sous entend scraat encore, tu utilises un setInterval ...

ce qui veut dire, que quand tu fais ca :
transparence_dessus(document.getElementById("etoile_1"));
transparence_dessus(document.getElementById("etoile_2"));
transparence_dessus(document.getElementById("etoile_3"));

ton code va faire ca

0ms : transparence_dessus(document.getElementById("etoile_1"));
0ms : effet=setInterval("effet2(var1)",60); ==> ok dans 60ms je vais executer ca

etc.... pour les 3 fonctions tu demande d'effectuer ta fonction dans 60ms ta fonction est seulement

effet2(var1) et pour lui var1 vaut etoile3 ce qui est normal ...

donc supprime le setInterval car je n'en vois pas trop l'utilité ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr