tout d'abord bonjour à tous
voici mon problème, je tente de faire une fonction fadeOut fonctionnant avec setTimeout afin d'étaler l'effet sur une certaine durée, malheureusement, lors de mes tests, tout s'exécute en même temps. sûrement une erreur toute bête, mais je ne trouve pas, voici mon code :
les fonctions getOpacity et setOpacity ont été testées et fonctionnent à merveille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 // fadeOut : diminue l'opacite d'un objet en un temps donne // obj : objet // opEnd : opacite d'arrive (0-100) // ms : vitesse de changement (ms - pour aller de 100 a 0 d'opacite) // arrayTimer : tableau de timer (optionnel) function fadeOut (obj, opEnd, ms, arrayTimer) { if (arrayTimer != undefined) { for (i=0;i<=arrayTimer.length-1;i++) clearTimeout(arrayTimer[i]); } arrayTimer=new Array(); var opStart = getOpacity(obj); var speed=Math.round(ms/100); var coeff = 0; for (i=opStart-1;i>=opEnd;i--) { arrayTimer.push(setTimeout(function () {setOpacity(obj,i)},(coeff*speed))); coeff++; } }
merci d'avance pour votre aide.
Partager