Bonjour à tous,

et oui encore une question à propos de cette galerie.
http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript

Je précise que si je poste un message c'est parce que je n'ai pas trouvé de réponse Smiley cligne

Me concernant, je débute dans tout. Je n'ai aucune base en javascript ou très peu. Le css je commence à saisir quelques subtilités et le html ca peut aller (ce n'est pas non plus le plus compliqué).

Alors voici ce que je souhaiterais obtenir grâce à votre galerie:

au niveau de la présentation de la galerie je souhaite mettre en premier la grande photo puis les miniatures puis le titre (qui se transforme en description).

Je précise que la ca fonctionne car j ai mis le titre en position absolue (donc bof bof quand même)

Quand je modifie le code html avec le css ca ne fonctionne plus (lors du clic sur la photo l'image s'affiche dans une autre fenêtre). J'imagine que ca vient du javascript.

au niveau de l'affichage des miniatures je voudrais qu'elles s'affichent au survol de celles-ci. Je crois qu'il faut modifier de onclic. non ?

Voici le code html css:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Galerie</title>
<style type="text/css">
		div#galerie
		{
			width: 210px ;
			height:300px;
			background:#fff ;
			padding: 10px ;
			margin: 10px;
			text-align: center ;
			border: 1px solid #000 ;
		}
		
		ul#galerie_mini
		{
			margin: 0 ;
			padding: 0 ;
			list-style-type: none ;
		}
		
		ul#galerie_mini li
		{
			float: left ;
		}
		
		ul#galerie_mini li a img
		{
			margin-left:4px;
			margin-right:6px;
			border: 1px solid #000 ;
		}
		
		dl#photo
		{
			clear: both ;
			margin: 0 auto ;
		}
		
		dl#photo dt
		{
			font-family:"Verdana", Trebuchet MS, Arial, sans-serif;
			font-size:10px;
			color: #333333;
			position: absolute;
			left: 80px;top:300px;/*et avec ca je bidouille la présentation de la galerie*/
		}
		
		dl#photo dd
		{
			margin:0px ;
		}
		
		dl#photo img /*tour gris photo principal*/
		{
			border: 1px solid #cccccc ;
		}
		</style>
		
		<script type="text/javascript" src="script.js"></script>
</head>

<body>

<div id="galerie">
	
<dl id="photo">	
		<dd><img id="big_pict" src="images/photo1.png" alt="Photo 1 en taille normale" /></dd>
		<dt>Titre de la photo 1</dt>
	</dl>
	
	<ul id="galerie_mini">
		<li><a href="images/photo1.png" title="Titre de la photo 1"><img src="images/minis/m_photo1.png" alt="Le titre de la photo 1" /></a></li>

		<li><a href="images/photo2.png" title="Titre de la photo 2"><img src="images/minis/m_photo2.png" alt="Le titre de la photo 2" /></a></li>
		<li><a href="images/photo3.png" title="Titre de la photo 3"><img src="images/minis/m_photo3.png" alt="Le titre de la photo 3" /></a></li>
		<li><a href="images/photo4.png" title="Titre de la photo 4"><img src="images/minis/m_photo4.png" alt="Le titre de la photo 4" /></a></li>
	</ul>
	
</div>	
</body>
</html>



voila le javascript d'origine



// JavaScript Document
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
[/i]
Modifié par epock29 (29 Jul 2007 - 20:40)
bon alors je me répond à moi même merci du coup de main Smiley cligne

pour l'apparition des images en cas de survol c'est très simple il suffit de remplacer dans le javascript onclic par onmouseover et c'est tout.


Par contre pour l'autre modif j'aimerai bien un petit coup de main.
Pour rappel, je souhaite obtenir la présentation ci dessus sans la propriété position absolue (si je modifie juste le code html j'ai un bug voir ci dessus)

Allez allez bientot je pourrai mettre ce post en résolu lol
Bonjour epock29,

Pour modifier la présentation, je ferais juste comme ça, au niveau html, mais je sais pas si c'est "orthodoxe" Smiley ravi :

	<body>
	<p><a href="http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript">Retour au tutoriel</a></p>
	<div id="galerie">	
		<dl id="photo">
			<dd><img id="big_pict" src="images/photo1.png" alt="Photo 1 en taille normale" /></dd>
		<ul id="galerie_mini">
			<li><a href="images/photo1.png" title="Titre de la photo 1"><img src="images/minis/m_photo1.png" alt="Le titre de la photo 1" /></a></li>
			<li><a href="images/photo2.png" title="Titre de la photo 2"><img src="images/minis/m_photo2.png" alt="Le titre de la photo 2" /></a></li>
			<li><a href="images/photo3.png" title="Titre de la photo 3"><img src="images/minis/m_photo3.png" alt="Le titre de la photo 3" /></a></li>
			<li><a href="images/photo4.png" title="Titre de la photo 4"><img src="images/minis/m_photo4.png" alt="Le titre de la photo 4" /></a></li>
			<li><a href="images/photo5.png" title="Titre de la photo 5"><img src="images/minis/m_photo5.png" alt="Le titre de la photo 5" /></a></li>
			<li><a href="images/photo6.png" title="Titre de la photo 6"><img src="images/minis/m_photo6.png" alt="Le titre de la photo 6" /></a></li>
			<li><a href="images/photo7.png" title="Titre de la photo 7"><img src="images/minis/m_photo7.png" alt="Le titre de la photo 7" /></a></li>
			<li><a href="images/photo8.png" title="Titre de la photo 8"><img src="images/minis/m_photo8.png" alt="Le titre de la photo 8" /></a></li>
			<li><a href="images/photo9.png" title="Titre de la photo 9"><img src="images/minis/m_photo9.png" alt="Le titre de la photo 9" /></a></li>
		</ul>
			<dt>Titre de la photo 1</dt>
		</dl>
	</div>	
	</body>
olalal énorme blue.

Je n'y avais même pas pensé. Merci bcp.

Après test chez moi ca bug ? et toi ?
Modifié par epock29 (22 Jul 2007 - 22:04)
ben, ça fait un drôle de mélange je trouve Smiley ravi
si les pros passent par la, ils vont peut-être nous dire...

sinon, non, chez moi ça bug pas, j'ai juste modifié le html du tuto et je n'ai pas du tout touché au css, ni au javascript

reprend le tuto original et modifie le comme moi car tu as peut-être modifié des choses, auparavant, qui fait que ça bug
Modifié par blue (22 Jul 2007 - 22:41)
Alors j'ai pris ton code et le code du tuto et j'ai toujours le petit bug

Quand tu cliques sur la miniature ça fonctionne correctement chez toi ? car moi l'image apparait mais plus dans la galerie. Il n'y a plus que l'image sur laquelle j'ai cliqué.
je dois avouer que je comprends pas trop ce que tu veux dire Smiley ravi

le comportement est exactement le même que celui du tuto chez moi

Peux-tu faire un screen pour que je comprenne stp Smiley smile
lol en effet Smiley biggol
non, moi ça fait pas ça du tout
je te donne le code complet, tu fais un copier-coller et tu me dis Smiley smile

<!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>Galerie photo en xHTML CSS et JavaScript</title>
	  	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> 
		<meta http-equiv="Content-Script-Type" content="text/javascript" />
		<meta http-equiv="Content-Language" content="fr" />
		<meta name="author" content="ElMoustiko" />
		<meta name="email" content="elmoustiko@elmoustikoblog.net" />
		<link rel="icon" type="image/gif" href="/favico.gif" />
<script language="Javascript">
<!--
		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
	
	for(var i = 0 ; i < liens.length ; i++)
	// Une boucle parcourant l'ensemble des liens contenu dans galerie_mini
	{
		liens[i].onclick = function()
		// Au clique sur ces liens
		{
			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
// -->
</script>
		<style type="text/css">
		body
		{
			margin: 0 ;
			padding: 0 ;
			font: 0.9em Georgia, serif ;
		}
		h1
		{
			margin: 15px 10px ;
			text-decoration: underline ;
			color: #dcb ;
		}
		
		p
		{
			line-height: 1.5em ;
			text-indent: 1em ;
			margin: 15px 10px ;
		}
		
		div#galerie
		{
			width: 410px ;
			background: #eed ;
			border: 1px solid #dcb ;
			padding: 15px ;
			margin: 15px 30px ;
			text-align: center ;
		}
		
		ul#galerie_mini
		{
			margin: 0 ;
			padding: 0 ;
			list-style-type: none ;
		}
		
		ul#galerie_mini li
		{
			float: left ;
		}
		
		ul#galerie_mini li a img
		{
			margin: 2px 1px ;
			border: 1px solid #dcb ;
		}
		
		dl#photo
		{
			clear: both ;
			margin: 0 auto ;
		}
		
		dl#photo dt
		{
			font: italic 2.5em/1.5em Georgia, serif ;
			color: #dcb ;
		}
		
		dl#photo dd
		{
			margin: 0 ;
		}
		
		dl#photo img
		{
			border: 1px solid #dcb ;
		}
		</style>
		
		<script type="text/javascript" src="script.js"></script>
	</head>
	<body>
	<p><a href="http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript">Retour au tutoriel</a></p>
	<div id="galerie">	
		<dl id="photo">
			<dd><img id="big_pict" src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo1.png" alt="Photo 1 en taille normale" /></dd>
		<ul id="galerie_mini">
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo1.png" title="Titre de la photo 1"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo1.png" alt="Le titre de la photo 1" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo2.png" title="Titre de la photo 2"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo2.png" alt="Le titre de la photo 2" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo3.png" title="Titre de la photo 3"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo3.png" alt="Le titre de la photo 3" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo4.png" title="Titre de la photo 4"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo4.png" alt="Le titre de la photo 4" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo5.png" title="Titre de la photo 5"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo5.png" alt="Le titre de la photo 5" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo6.png" title="Titre de la photo 6"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo6.png" alt="Le titre de la photo 6" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo7.png" title="Titre de la photo 7"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo7.png" alt="Le titre de la photo 7" /></a></li>
			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo8.png" title="Titre de la photo 8"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo8.png" alt="Le titre de la photo 8" /></a></li>

			<li><a href="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/photo9.png" title="Titre de la photo 9"><img src="http://css.alsacreations.com/xmedia/exemples/galerie_photo_js/images/minis/m_photo9.png" alt="Le titre de la photo 9" /></a></li>
		</ul>
			<dt>Titre de la photo 1</dt>
		</dl>
	</div>	
</body>
</html>
[/i]
Merci Blue

ça marche nikel avec tout ton code. Par contre je verrai demain plus en détail les différences ac mon code (car je n'ai plus les yeux en face des trous) Smiley cligne

merci encore "Big" Blue. Je reviens demain pr donner des news
Alors Blue Félicitation ça fonctionne nikel.
Je vais voir si c'est valide mais ca fonctionne sur FF et même sur IE7 alors pour dire Smiley cligne

Je reviendrai bientôt avec des bigs problèmes pour un menu (qui fonctionne nikel sous FF et horrible sur IE7)

A bientot et merci
j'avais regardé si c'était bon avec IE, c'est presque devenu un automatisme Smiley smile
contente d'avoir pu t'aider Smiley cligne