Galerie-S'il vous plaît aidez moi... [Résolu]

Signaler
Messages postés
2
Date d'inscription
samedi 25 février 2012
Statut
Membre
Dernière intervention
26 février 2012
-
 Utilisateur anonyme -
Bonjour,
Je dois faire une galerie avec Javascript en utilisant ce qu'il y a ci-dessous, j'ai essayé des tonnes choses pour créer ma fonction showImg mais sans succès (et croyez moi j'y ai passé des dizaines d'heures); sachant qu'il faut que le titre et l'image change quand je clique sur les différents boutons. Quelqu'un pourrait-il m'aider s'il vous plaît? Merci d'avance un million de fois!




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang= "fr" lang="fr">
<head>
<title>javascript</title>
<meta name="author" content="MissKuroime" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<style>
.hidden{
display : none;
}
.show{
display : block;
}
#legend{color:#fe65a5;}
</style>


<li></li>
<li></li>
<li></li>
<li></li>
<li></li>


<li></li>
<li></li>
<li></li>
<li></li>
<li></li>

Kiwi 1

<script type="text/javascript">
function showImg(index) {

}



</script>

</html>

5 réponses

Messages postés
268
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2017
2
Re-correction je suis allé trop vite : for (var n=0;n<5;n++) {
Messages postés
268
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2017
2
Il faut noter un certain nombre d'erreurs dans le code de votre page HTML :
1 - l'élément <script>, lorsqu'il est placé dans l'élément comme vous venez de le faire, s'exécute une seule fois lors de l'affichage de la page HTML. Dans ce cas, du fait qu'il contient une fonction, rien ne s'exécutera. Pour qu'une fonction Javascript puisse être appelée depuis n'importe ou dans l'élément , il faut que le script soit placé dans l'élément <head> de la page HTML.
2 - Vous n'avez pas placé de balise de fermeture de l'élément <head> avant la balise d'ouverture de l'élément , mais avant la balise d'ouverture de l'élément <style>, ce qui fait que cet élément n'est pas contenu dans l'élément <head> (alors que c'est obligatoire).
3 - Vous définissez des attributs id pour les images avec des chiffres de 1 à 5 . Rappel des règles pour définir la valeur d'un attribut id :
[list]
Doit commencer par une lettre A-Z ou a-z
Peut être suivi par : des lettres (A-Za-z), des chiffres (0-9), des tirets ("-"), des underscores ("_"), des deux points (":"), ou des points (".")
Les valeurs sont sensibles à la casse (MAJUSCULE différent de minuscule)
/list

Quelques conseils pratiques :
1 - Donner à chacune des images un attribut id="img0",id="img1",id="img2",id=img3",id="img4".
Cela doit ressembler à ceci :

<li></li>
...
<li></li>

2 - Inutile de créer un élément style dans l'élément <head> pour afficher ou effacer les images, le style peut être appliqué directement avec Javascript. Comme ceci :
<head>
<script type="text/javascript">
function showImg(ind)
{
for (var n=0;n<4) {
var idimg="img"+n;
if (idimg==ind) {
document.getElementById(idimg).style.dysplay="block";
document.getElementById("legend").innerHTML="Kiwi "+(n+1);
}
else {
document.getElementById(idimg).style.dysplay="none";
}
}
}
</script>
</head>
3 - Le menu devient :

<li>Image 1</li>
...
<li>Image 5</li>

4 - Le titre devient :


5 - On force l'affichage de la première image à l'ouverture de la page HTML comme ceci :

...

Tout cela devrait fonctionner correctement maintenant.
Bon courage!...
Messages postés
268
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2017
2
Correction de l'instruction for : for (var n=0;n<4;n++) {
avec mes excuses.
Messages postés
2
Date d'inscription
samedi 25 février 2012
Statut
Membre
Dernière intervention
26 février 2012

Merci beaucoup! Je ne sais pas quoi dire à part merci; j'ai enfin compris!

Erf, trop tard ^^'
Content que tu aies trouvé une colution ! Pense à marquer ton sujet comme "résolu" stp :D


--
Pylouq
(Lire le Réglement n'a jamais tué personne, au pire ça les a instruit)