/*visionneuse par Tristan Vanrullen (c) 2009*/ /* un ensemble d'URLs d'images est stocké dans un tableau tab_elements_visionneuse pour chaque image 'curseur_visionneuse', on effectue plusieurs opérations chaque opération dépend du tick courant (un nombre entier qui est incrémenté périodiquement) la période d'incrémentation est définie dans la variable time_tick_visionneuse (en millisecondes) chaque image passe par quatre phases dont la durée est définie par les quatre variables nb_tick_stable_out .... l'image est invisible nb_tick_fade_in ........l'image apparait nb_tick_stable .........l'image est visible à 100% nb_tick_fade_out........l'image disparait au terme de ces quatre phases, le tick courant est réinitialisé à 0 et le curseur est incrémenté (modulo le nombre d'images présentes dans le tableau) */ var curseur_visionneuse = 0; var time_tick_visionneuse = 50;//durée d'un 'tick' en millisecondes var nb_tick_fade_in = 15;//0.75s var nb_tick_fade_out = 25; //1.25s var nb_tick_stable = 60; //3 secondes var nb_tick_stable_out = 25; //1.25s var tick_visionneuse = 0; //le temps de chargement de la page retarde le démarrage du script. On compense ce retard en démarrant à un tick positif var tab_elements_visionneuse=null; //doit être redéfini (et rempli) dans la page principale function change_image_visionneuse(id_element) { if (tab_elements_visionneuse==null) return; tick_visionneuse=tick_visionneuse+1; if (tick_visionneuse> 0 && tick_visionneuse< nb_tick_fade_in) { var img = document.getElementById(id_element); var newOpVal = (nb_tick_fade_in-tick_visionneuse)/nb_tick_fade_in; newOpVal = 1 - newOpVal; img.style.opacity = newOpVal; img.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')'; } else if (tick_visionneuse> nb_tick_fade_in && tick_visionneuse< nb_tick_stable+ nb_tick_fade_in) { var img = document.getElementById(id_element); img.style.opacity = 1; img.style.filter = ''; } else if (tick_visionneuse> nb_tick_stable + nb_tick_fade_in && tick_visionneuse< nb_tick_stable+ nb_tick_fade_in + nb_tick_fade_out) { var img = document.getElementById(id_element); var newOpVal = (nb_tick_fade_out-(tick_visionneuse-nb_tick_fade_in-nb_tick_stable))/nb_tick_fade_out; img.style.opacity = newOpVal; img.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')'; } else if ((tick_visionneuse > nb_tick_stable + nb_tick_fade_in + nb_tick_fade_out) && (tick_visionneuse < nb_tick_stable+ nb_tick_fade_in + nb_tick_fade_out + nb_tick_stable_out)) { var img = document.getElementById(id_element); img.style.opacity = 0; img.style.filter = 'alpha(opacity = 0)'; } if (tick_visionneuse== nb_tick_stable+ nb_tick_fade_in + nb_tick_fade_out +1) { var img = document.getElementById(id_element); img.src=tab_elements_visionneuse[curseur_visionneuse]; if(curseur_visionneuse= nb_tick_stable_out+ nb_tick_stable+ nb_tick_fade_in + nb_tick_fade_out) { tick_visionneuse=0; } setTimeout("change_image_visionneuse('"+id_element+"')",time_tick_visionneuse); }