Soucis photo et légende aléatoire[javascript]
Résolu
Jearus8
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
Jearus8 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Jearus8 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un soucis, pour le boulot, je dois faire un site et dans une des pages, il y a un emplacement ou deux photos changent toute les deux secondes.
Jusque là pas de soucis, cependant, le soucis intervient quand j'essaye de faire correspondre pour chaque photo une légende contenue elle aussi dans la base de donnée!
Probléme, si les photos s'altérnent bien, la légende reste fixe..
Lapin comprendre!
mon code:
..récupération des info par une requete php et structure du document...
<script language="javascript">
var element= "img/<?php echo($image);?>";
var element2= "img/<?php echo($image2);?>";
var legende1= "<?php echo($legende1);?>";
var legende2= "<?php echo($legende2);?>";
var pic=new Array( "" , element , element2 ); // tableau des noms d'images
var lege=new Array( "" , legende1 , legende2 ); // tableau des noms d'images
var mis=new Array(2); // tableau des indicateurs 'image tirée'
for(i=1;i<3;i++) {mis[i]=0;} // Initialisation à zéro des indicateurs 'image déjà tirée'
total=0; // pour trouver rapidement la dernière image
for(i=1;i<2;i++) // on va boucler sur nombre d'images moins un
{ mis[i]=1+Math.round(Math.random()*1); // tirer aléatoirement un nombre dans mis(i)
trouve=0; // supposons que l'image ne soit pas encore tirée
for (j=1;j<i;j++) // voyons si cette image a été tirée
{if (mis[j]==mis[i]) {trouve=1;} } // si oui
if (trouve==1) {i=i-1;} // recommencer à tirer
if (trouve==0) {total=total+mis[i];} // sinon la compter
}
mis[2]=3-total;
var i=1+Math.round(Math.random()*1);
function change() // la fonction temporisée qui change d'image
{
document.pic.src=pic[mis[i]];
lege=lege[mis[i]];
i++;if(i>2){i=1;}
setTimeout("change()", 1000);// Toutes les 2 secondes
}
</script>
<body onLoad="change()">
<script>
document.write("<img name='pic'src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>");
document.write("legende : ");document.write(lege[i]);
</script>
</body>
</html>
J'ai un soucis, pour le boulot, je dois faire un site et dans une des pages, il y a un emplacement ou deux photos changent toute les deux secondes.
Jusque là pas de soucis, cependant, le soucis intervient quand j'essaye de faire correspondre pour chaque photo une légende contenue elle aussi dans la base de donnée!
Probléme, si les photos s'altérnent bien, la légende reste fixe..
Lapin comprendre!
mon code:
..récupération des info par une requete php et structure du document...
<script language="javascript">
var element= "img/<?php echo($image);?>";
var element2= "img/<?php echo($image2);?>";
var legende1= "<?php echo($legende1);?>";
var legende2= "<?php echo($legende2);?>";
var pic=new Array( "" , element , element2 ); // tableau des noms d'images
var lege=new Array( "" , legende1 , legende2 ); // tableau des noms d'images
var mis=new Array(2); // tableau des indicateurs 'image tirée'
for(i=1;i<3;i++) {mis[i]=0;} // Initialisation à zéro des indicateurs 'image déjà tirée'
total=0; // pour trouver rapidement la dernière image
for(i=1;i<2;i++) // on va boucler sur nombre d'images moins un
{ mis[i]=1+Math.round(Math.random()*1); // tirer aléatoirement un nombre dans mis(i)
trouve=0; // supposons que l'image ne soit pas encore tirée
for (j=1;j<i;j++) // voyons si cette image a été tirée
{if (mis[j]==mis[i]) {trouve=1;} } // si oui
if (trouve==1) {i=i-1;} // recommencer à tirer
if (trouve==0) {total=total+mis[i];} // sinon la compter
}
mis[2]=3-total;
var i=1+Math.round(Math.random()*1);
function change() // la fonction temporisée qui change d'image
{
document.pic.src=pic[mis[i]];
lege=lege[mis[i]];
i++;if(i>2){i=1;}
setTimeout("change()", 1000);// Toutes les 2 secondes
}
</script>
<body onLoad="change()">
<script>
document.write("<img name='pic'src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>");
document.write("legende : ");document.write(lege[i]);
</script>
</body>
</html>
A voir également:
- Soucis photo et légende aléatoire[javascript]
- Legende photo - Guide
- Google photo - Télécharger - Albums photo
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Google maps photo maison - Guide
- Partage photo - Guide
2 réponses
Bonjour,
Je pense que le code correct est le suivant
Utilise alt pour indiquer ta légende qui sera affichée lorsque le curseur sera sur ta photo.
A plus
Je pense que le code correct est le suivant
document.write("<img name='pic' alt='"+lege[i]+"' src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>");
Utilise alt pour indiquer ta légende qui sera affichée lorsque le curseur sera sur ta photo.
A plus
Bonjour,
Ok, dans ce cas-là le code devrait être le suivant
et dans ta fonction change
Tu dois aussi ajouter après la balise <body> la balise suivante: <form name=photo> et avant la balise </body> la balise </form>
A plus
Ok, dans ce cas-là le code devrait être le suivant
document.write("<img id='pic' src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"'>"); document.write("legende : <input type='text' id='lege' value='" + lege[i]+" readonly=1>");
et dans ta fonction change
document.photo.pic.src=pic[mis[i]]; document.photo.lege.value=lege[mis[i]];
Tu dois aussi ajouter après la balise <body> la balise suivante: <form name=photo> et avant la balise </body> la balise </form>
A plus
De rien, le forum est là pour çà.
Concernant ta question, ta légende était du texte fixe dans le code html de ta page, le fait d'avoir utilisé la balise <input> permet de changer la valeur de cette zone dynamiquement à condition que la balise soit comprise entre <form> et </form>.
A plus
PS: N'oublie pas d'indiquer que le problème est résolu
Concernant ta question, ta légende était du texte fixe dans le code html de ta page, le fait d'avoir utilisé la balise <input> permet de changer la valeur de cette zone dynamiquement à condition que la balise soit comprise entre <form> et </form>.
A plus
PS: N'oublie pas d'indiquer que le problème est résolu
mais j'aimerais bien que la légende apparaissent sous la photo..
Merci d'avance;)