Salut à tous,

Malgré les nombreux postes sur le forum, je ne trouve pas la solution à mon probleme, a savoir que quan je clique sur les miniatures, cela m'affiche ma photo grandeur nature.

Alors est ce que je suis con et de toute façon ça marche que comme ça ou alors j'ai fait quelque chose de travers (je penche pour la deuxieme soluce Smiley ohwell ..

J'ai bien mis mon fichier JS qui se nomme script.js dans mon répertoire.
Merci de m'aider et désolé si c'est une question débile

Voici mon code:


<div id="galerie">
	<ul id="galerie_mini">
		<li><a href="photos/photos 022.jpg" title="Titre de la photo 1"><img src="photos_mini/photos 022.jpg" alt="Le titre de la photo 1" /></a></li>

	</ul>

	<dl id="photo">
		<dt>Titre de la photo 1</dt>
		<dd><img id="big_pict" src="photos_mini/photos 022.jpg" alt="Photo 1 en taille normale" width=300 height=150 /></dd>
	</dl>
</div>



div#galerie {
	position:relative;
	width: 410px ;
	left:100px;
	background: white ;
	border: 1px solid #dcb ;
	padding: 15px ;
	margin: 15px 30px ;
	text-align: center ;
	font: 0.9em Georgia, serif ;
	color:black;
}
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 ;
}



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]
JeffHU a écrit :

Malgré les nombreux postes sur le forum, je ne trouve pas la solution à mon probleme, a savoir que quan je clique sur les miniatures, cela m'affiche ma photo grandeur nature.


Bonjour et bienvenue,

Ça te l'affiche dans la même page ou dans une autre page ?
Tout d'abord merci de prendre le temps de me répondre.

Et en fait ça s'ouvre dans la même page, mais je pense que l'espace alloué par la balise div est trop petit et du coup, puisque la photos est grande bah le cadre s'agrandit aussi..

Mais la je bloque..
Je pensais que la photo s'adapterait a la taille du truc.

Je suis preneur pourles réponses.
Non malheureusement je n'ai rien en ligne pour le montrer.

J'ai essayé de reprendre juste le code qui était donné dans le tutorial sans rien ajouter et c toujours pareil quand je clique sur une des miniatures bah la photo qui apparait est énorme enfin de taille normal soit 2272*1704 pixels!

Alors à moins de mettre width dans la balise img je ne sais pas trop si on peut paramétrer l'image pour qu'elle soit plus petite.

Merci
Je ne crois pas que cette galerie permette de choisir la taille de la photo "normale".

Elle affiche la photo dans sa taille réelle.
Pour que tes photos "grandes" ne dépassent pas du cadre, il faut les retailler avant.
En tous les cas c'est ce que j'ai fait, et le tutorial ne précise pas que les photos sont redimensionnées pour s'adapater au cadre...

Bon courage.
Pourquoi diable ne pas faire les choses proprement et simplement ?
- en commençant par redimensionner (dans ton photoshop ou autre) et mettre en ligne ton image "grande taille" à un format plus adapté à l'affichage Web que 2272*1704 pixels Smiley eek
- en utilisant pour les vignettes de véritables vignettes, c'est à dire une copie encore réduite de l'image grande taille.

Du point de vue qualité, c'est à dire interopérabilité, accessibilité, ergonomie, coût... il est déconseillé, d'une manière générale, de redimensionner des images côté client au lieu de faire de véritables vignettes :
- gain nul pour le visiteur, le temps de chargement de la page étant celui des images grand format qu'il ne souhaitera peut-être pas voir finalement (C'est bien pour qu'il puisse choisir, qu'il y a des vignettes !)
- alourdissement du document global et du coût en bande passante
- catastrophe prévisible dans un navigateur pour petits écrans (PDA, mobile) qui a besoin de connaître les véritables dimensions de l'image pour décider de la télécharger ou non
- rendu catastophique de la planche de vignettes dans un navigateur sans support CSS et/ou javascript
- impression générale assez "bricolo" qui se détache de ce genre d'astuce.

Groumpf ! Smiley cligne
Une autre solution serait d'utiliser PHP pour créer les vignettes côté serveur. Ca évite d'avoir toutes les images en de multiples tailles, en plus selon les pages de ton site tu veux peut-être pouvoir afficher une image en plein de résolutions différentes.
C'est ce que j'ai fait pour les galeries de photos sur DvdToile : http://dvdtoile.com/Film.php?id=22676