Bonjour,

cette question a déjà été posée dans le forum, mais les réponses ne m'ont rien apporté, et je ne trouve aucune solution après de longues recherches sur le web.

Je veux absolument que chaque photo de mon album possède un commentaire qui s'affiche en-dessous de la grande image.

Mon code html:

	<ul id="galerie_mini">
		<li><a href="Photos/ete_2006/1-ma_chambre.jpg" title="Ma chambre chez Claudia"><img src="Photos/ete_2006/minies-ete_2006/1-ma_chambre.jpg" alt="Ma chambre chez Claudia" /></a></li>
		<li><a href="Photos/ete_2006/2-cuisine_chez_claudia.jpg" title="Notre cuisine"><img src="Photos/ete_2006/minies-ete_2006/2-cuisine_chez_claudia.jpg" alt="La cuisine chez Claudia" /></a></li>
		<li><a href="Photos/ete_2006/3-cours_chez_claudia.jpg" title="La cours derrière"><img src="Photos/ete_2006/minies-ete_2006/3-cours_chez_claudia.jpg" alt="La cour intérieur chez Claudia" /></a></li>
		<li><a href="Photos/ete_2006/4-behaimstr.jpg" title="Behaimstrasse, ma rue" class="fleches"><img src="Photos/ete_2006/minies-ete_2006/4-behaimstr.jpg" alt="La rue où j'ai habité" /></a></li>

		<li><a href="Photos/ete_2006/5-langhansstr.jpg" title="Et on tourne le coin : Langhansstrasse"><img src="Photos/ete_2006/minies-ete_2006/5-langhansstr.jpg" alt="Le titre de la photo 5" /></a></li>
		<li><a href="Photos/ete_2006/6-antonplatz.jpg" title="Titre de la photo 6"><img src="Photos/ete_2006/minies-ete_2006/6-antonplatz.jpg" alt="Le titre de la photo 6" /></a></li>
	</ul>
	
	<dl id="photo">
		<dt>&nbsp;</dt>
		<dd><img id="big_pict" src="Photos/ete_2006/1-ma_chambre.jpg" alt="Photo 1 en taille normale" /></dd>
	</dl>


Mon script (identique à celui du tuto) :

function displayPics()
{
	var photos = document.getElementById('galerie_mini') ;
	// On récupère l'élément ayant pour id galerie_mini
	var liens = photos.getElementsByTagName('a') ;
	// On récupère dans une variable tous les liens contenu dans galerie_mini
	var big_photo = document.getElementById('big_pict') ;
	// Ici c'est l'élément ayant pour id big_pict qui est récupéré, c'est notre photo en taille normale

	var titre_photo = document.getElementById('photo').getElementsByTagName('dt')[0] ;
	// Et enfin le titre de la photo de taille normale

	// Une boucle parcourant l'ensemble des liens contenu dans galerie_mini
	for (var i = 0 ; i < liens.length ; ++i) {
		// Au clique sur ces liens 
		liens[i].onclick = function() {
			big_photo.src = this.href; // On change l'attribut src de l'image en le remplaçant par la valeur du lien
			big_photo.alt = this.title; // On change son titre
			titre_photo.firstChild.nodeValue = this.title; // On change le texte de titre de la photo
			return false; // Et pour finir on inhibe l'action réelle du lien
		};
	}
}
window.onload = displayPics;
// Il ne reste plus qu'à appeler notre fonction au chargement de la page



J'ai déjà essayé de m'inspirer de la solution fournie sur ce site http://www.clb56.fr/test_php_js/etude_galerie_js/ mais sans résultat, mis appart que la description s'affichait sous les vignettes Smiley confus ...


À noter que mon serveur ne me donne pas la possibilité d'utiliser php.

Quant à mes connaissances de Javascript, elles ne me permettent pas encore de modifier le code du tuto de manière efficace. Mais il y en a certainement ici qui sont meilleurs que moi, non Smiley cligne

S'il-vous-plaît aidez-moi quelqu'un Smiley bawling [/i]
Tu places le commentaire avant ta photo...Il apparait donc avant...

a écrit :
<dl id="photo">
<dt> </dt>
<dd><img id="big_pict" src="Photos/ete_2006/1-ma_chambre.jpg" alt="Photo 1 en taille normale" /></dd>
</dl>


Si tu le places après...peut-être que... Smiley cligne
a écrit :
<dl id="photo">
<dd><img id="big_pict" src="Photos/ete_2006/1-ma_chambre.jpg" alt="Photo 1 en taille normale" /></dd>
<dt> </dt>
</dl>

Modifié par 6l20 (15 Oct 2007 - 23:14)
Ouais, ben ça j'y avais déjà pensé, mais c'est que je veux un titre en haut et une description en bas...

Bon en fait c'est vrai, je pourrais me contenter de tout mettre en bas. Mais il y a un problème: en mettant tout dans l'élément title="", c'est à dire dans le <dt>, je ne trouve pas le moyen de varier le style de l'écriture, et j'aimerais bien faire apparaître les descriptions en plus petit que le titre.

C'est pourquoi je cherchais plutôt à ajouter un deuxième <dd> après celui de la photo, ou encore utiliser <p> comme proposé dans cette page http://www.clb56.fr/test_php_js/etude_galerie_js/, mais là avec le Javascript je n'y arrive pas du tout.

Merci quand même pour ta réponse Smiley cligne
Encore eût-il fallu que ta demande initiale mentionne très exactement ce que tu désirais faire au final...

Quoiqu'il en soit, je ne pense pas que cela concerne ton fichier Js ( bien qu'il soit très certainement possible de passer par Js pour obtenir ce que tu désires), mais plutôt qu'il s'agit bel et bien de code html, que tu pourras styliser via css :

Reprenons ton exemple, il s'agit d'une liste de définition : un <dl> conteneur, un terme de définition <dt> (ton titre), et une description de définition <dd> (la photo dans ton exemple), qu'est-ce qui t'empêche de rajouter une "description de définition" (donc une nouvelle balise dd dans ton code) qui te servira de commentaire, et à laquelle tu pourras (via une class css) affecter les paramètres que tu souhaites ?

Je ne sais pas si c'est sémantiquement correcte (?), mais c'est certainement ce que je ferai, notamment si je ne savais pas passer par Js... Smiley cligne

De rien, ça me fait très plaisir de te répondre ( bien que j'abhorre réellement beaucoup le borborygme "Ouais"...) Smiley cligne
Modifié par 6l20 (18 Oct 2007 - 00:32)