temporisation avec setTimeout (fadeOut)
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 :
Code:
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++;
}
} |
les fonctions getOpacity et setOpacity ont été testées et fonctionnent à merveille.
merci d'avance pour votre aide.