Bonjour à tous,
J'espère que je poste dans la bonne section.
Voici mon souci : je cherche à dapter le scrit suivant à mes besoins :
http://www.codes-sources.com/code.aspx?ID=42611
Malheureusement, je ne connais pas javascript, et le code n'est pas commenté, j'aurais donc besoin de votre aide pour d'une part me dire si je suis sur la bonne voie, et d'autre part m'expliquer les points que je ne comprends pas.
code :
var visuel_n=0;
function Visuel_Fondu()
{
if(document.all)
{
if ( window.opera )
document.getElementById("visuel_" + VisuelPosChange).style.opacity = visuel_n*0.01;
else
document.getElementById("visuel_" + VisuelPosChange).filters.alpha.opacity=visuel_n;
visuel_n+=5;
if ( visuel_n<= 100 )
{
setTimeout("Visuel_Fondu()", 100);
return 0;
}
}
else
{
document.getElementById("visuel_" + VisuelPosChange).style.setProperty("-moz-opacity", visuel_n, "");
visuel_n+=0.05;
if ( visuel_n<= 1 )
{
setTimeout("Visuel_Fondu()", 100);
return 0;
}
}
visuel_n=0;
document.getElementById("visuel").style.background="url('" + VisuelTab[VisuelPosChange][0] + "') -4px 0px no-repeat";
setTimeout("Visuel_Clear()", 100); //supprime clignotement sous FF
}
Cette partie du code si je ne m'abuse est la fonction de fondu entre les images, avec un genre de test pour la compatibilité des différents navigateurs, et une durée de fondu de 5 secondes ici. c'est bien ça ?
on continue, code :
function Visuel_Clear()
{
document.getElementById("visuel").innerHTML="";
setTimeout("Visuel_Defil()", 4000);
}
Ici, c'est la fonction qui efface la première immage du fondu ?
code :
var VisuelTab = [
["visuel_2.jpg",0],
["visuel_3.jpg",0],
["visuel_4.jpg",0],
["visuel_5.jpg",0],
["visuel_1.jpg",0],
];
Là c'est la création du tableau qui contient les noms des photos. D'après les différents crochets, je dirais que c'est un tableau à entrée multiple, ets-ce indispensable ? Ne peut-on faire ça avec un tableau simple ? A quoi correspond la valeur "0", sachant qu'elle revient systématiquement, ne peut-on la passer en paramètre ailleurs ? Je souhaiterais générer le tableau à partir d'un array php qui contient ma liste de photos, seulement mon array est linéaire, donc j'aimerais comprendre la nécéssité de ce "0", et d'avoir un tableau à entrée multiple.
on continue, code :
var VisuelPos=-1;
var VisuelPosChange;
function Visuel_Defil()
{
VisuelPosChange=VisuelPos;
VisuelPos++;
if ( VisuelTab.length <= VisuelPos )
VisuelPos=0;
if ( VisuelTab[VisuelPosChange][1] == 1 )
document.getElementById("visuel").innerHTML+="<img src='" + VisuelTab[VisuelPosChange][0] + "' id='visuel_" + VisuelPosChange + "' style='filter:alpha(opacity=0); -moz-opacity:0; position: absolute; margin-left: -4px;' />";
else
{
setTimeout("Visuel_Defil()", 10);
return 0;
}
Visuel_Fondu();
}
Ca c'est la fonction de défilement des images, on prend la première valeur du tableau, puis on incrémente pour passer à la suivante, etc... J'ai bon ?
Si je veux un affichage aléatoire, c'est ici que je dois caser un genre de random sur la variable VisuelPos ?
ensuite, code :
LoadVisuel();
function LoadVisuel() {
var tonimage=new Array();
for ( LoadVisuelPos=0;LoadVisuelPos<VisuelTab.length;LoadVisuelPos++)
{
tonimage[LoadVisuelPos] = new Image();
tonimage[LoadVisuelPos].src = VisuelTab[LoadVisuelPos][0];
//tonimage[LoadVisuelPos].onload = eval("function() { JsIsLoading("+LoadVisuelPos+"); }");
tonimage[LoadVisuelPos].onload = eval("JsIsLoading("+LoadVisuelPos+");");
}
}
on affiche l'image ?
code :
function JsIsLoading(LoadVisuelPos_) {
VisuelTab[LoadVisuelPos_][1]++;
if ( VisuelPos==-1 )
{
VisuelPos=0;
Visuel_Defil();
}
}
on charge l'image ? en cache ?
Tout ça reste un peu flou, je ne vois pas à quel moment et de quelle façon l'image est affichée, et surtout, je ne comprend pas la nécéssité du tableau multiple avec cette valeur "0".
Merci donc à ceux qui pourront m'éclairer.