Bonjour à tous

j'ai bien suivi et exécuté le tuto ci-dessus
http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript

ça marche pile poil Cependant j’aimerai

A ) mettre les mini photos non pas en haut horizontalement mais à gauche verticalement avec la grande image sur la droite des mini photos .


B) comment faire pour créer un lien sur la grande photo lorsqu’elle est affichée.


Je n'ai changé que quelques broutilles dans la dimension et couleur du cadre en CSS par rapport au tuto.
Est ce qu'un " savant " aurait un tuyau ?

<!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" >
   <head>
       <title>PATRICIA</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />	
       <link rel="stylesheet" media="screen" type="text/css" title="PATRICIA" href="CSS.css" />
	   <script type="text/javascript" src="script.js"></script>
	      </head>
		  <body>
		  
		   <div id="galerie">
	<ul id="galerie_mini">
		<li><a href="copie de statue.jpg" title="penseuse"><img src="statue 50 x 90.jpg" alt="penseuse" /></a></li>
		
		<li><a href="copie El Juli.jpg" title="El JULI"><img src="El Juli.jpg" alt="El JULI" /></a></li>
		
	 	    
	</ul>

	
	<dl id="photo"> 
		<dt>sculptures</dt>
		<dd><img id="big_pict" src="copie de statue.jpg" alt="Photo 1 en taille normale"  /></dd>
		
		</dl>	
		</div>
		
	</body>
	</html>
	



div#galerie
{
	width: 1150px ;
	height: 800px;
	background: #eef ;
	border: 1px solid #dcb ;
	padding: 15px ;
	margin: 15px 30px ;
	text-align: center ;	 
	font: 0.9em Georgia, serif ;
}

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: left  ;
	margin : 10%  ;
	 
	
}

dl#photo dt
{
	font: italic 2.5em/1.5em Georgia, serif ;
	color: #dcb ;
}

dl#photo dd
{
	margin: 0 ;
}

dl#photo img
{
	border: 10px solid #dcb ;
}
p
{
font-size: 18px;
text-align: center ;
}
 		


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
		



PS à MIKACHU Merci pour ton info, j'avais lu ( un peu vite ) j'espère avoir compris ???[/i]
Modifié par afelix (03 Jun 2007 - 21:02)
Salut,

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Salut,

question B) voir ce topic auquel je reponds au moins en partie a cela. j'explicite l'ajout d'un texte descriptif et j'ai rajouté des indications pour faire le lien sur l'image de la même maniere. visiblement ça a marché le topic est en resolu.


et question A) pas de difficulté

Si tu ne l'as pas encore lu je te conseille Comprendre-le-positionnement-des-balises-en-CSS.

c'est faisable en 3 coups Smiley cligne je te laisse les blancs.

enfin 3 en considerant que tu as déjà assez agrandi ton div...faut pas que je me vante trop moi Smiley langue

Pascal
Modifié par CPascal (04 Jun 2007 - 00:57)
Salut,

sujet maintes et maintes fois traité sur le forum, une recherche sur ce dernier apportera toute la lumière sur le problème...
Bonjour, encore moi......

A l'attention de CPascal:

Question A - Merci solutioné.
Question B - Vu ton topic http://forum.alsacreations.com/topic-1-26075-1-RESOLUGalerie-et-affiliation.html
Désolé, je n'ai pas pu réaliser de lien de la grande image vers une autre page.
D'ailleurs je ne trouve pas dans ton code XHTML et JAVA d'instructions permettant un ""clic sur la grande image". ( cool cool si je te raconte des
bétises.......)

A l'attention de Olivier.
Si tu savais le nombre de pages où je me suis baladé pour trouver des infos.

Pour résumé: MERCI à TOUS
a écrit :
j'explicite l'ajout d'un texte descriptif et j'ai rajouté des indications pour faire le lien


jamais dit avoir ecris de code Smiley cligne .

a écrit :
un deuxieme tableau qui contient les adresse tabadresse.
un id sur la balise <a id="biduletruc".
un var machin = document.getElementById('biduletruc');
et un machin.href = tabadresse[this.id]; dans le onclick.


bon c'etait du vite fait.

mais clairement autour de ton image (<img) tu rajoute un lien classique (<a id="monId" href="" etc... ). la seule question c'est comment je modifie le href en fonction de l'image? en rajoutant dans le onclick donc dans le code suivant:

 function displayPics()
{
             [#red]
                     ....................
                     ....................
[#black]
	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
                                      [#red]........[#black]
			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;


3 lignes là où j'ai mis des points rouges.

1/ un tableau contenant les différentes adresses
tabadresse = ["http://forum.alsacreations.com","http://www.openweb.fr"];
2/ var monid = document.getElementById('monId');
3/ monid.href = tabadresse[this.id];


et dans les miniatures un id qui va valoir 0,1,2,etc... pour faire indice du tableau.

voilà mon idée. je suis sur que dans les archives du forum (je post ici que depuis peu) il y a plein d'autre solution.

pascal
Modifié par CPascal (05 Jun 2007 - 14:37)
BJR
Je piétine depuis trop longtemps à mon goût sur la confection d'une galerie
avec un agrandissement de l'image centrale.
CPASCAL Tu m'avais gentiment répondu sur ce forum
malheureusement je n'arrive pas a coder et "surtout comprendre" ton explication "
(<img) tu rajoute un lien classique (<a id="monId" href="" etc... ). la seule question c'est comment je modifie le href en fonction de l'image? en rajoutant dans le onclick donc dans le code suivant:.... en bref c'est le codage du tableau :
1/ un tableau contenant les différentes adressestabadresse = ["http://forum.alsacreations.com","http://www.openweb.fr"];
..ou je coince je ne pige pas comment faire les tabadresses au niveau du codage dans la partie HTML.

Avant de t'enquiquiner j'ai remonté le forum et j'avais cru trouver mon
bonheur chez Alan
http://forum.alsacreations.com/topic-23-12467-1-3-tailles-dimages-differentes-dans-la-gallerie-photo-javascriptCss.html
mais impossible de mettre en place ces données. Chez moi ça colle pas
Je suis nul ?

Au secours qui peux me donner la mise en place d'un code ?
Merci Christian pour ton lien que j'avais deja repéré sans le mettre en
pratique.

Je l'ai recopié .... ça n'affiche aucun texte et le (js )liens.onmouseover = function() ne fonctionne pas il m'ouvre la grande image dans une nouvelle
page blanche.....

Merci quand même .
Bonjour,
Merci a Christian le Bouler pour son aide.
J'ai essayer ta galerie et.......ça marche mais je n'aime pas ce texte"clic"
pour afficher une autre photo et ce que je souhaite c'est quau passage
de la souris sur la photo je puisse cliquer pour aller sur une autre photo
ou autra page.

C Pascal m'a donné plus haut une solution mais je n'arrive pas à la
mettre en place (Borné, qui moi ? )
/ mais clairement autour de ton image (<img) tu rajoute un lien classique (<a id="monId" href="" etc... ). la seule question c'est comment je modifie le href en fonction de l'image? en rajoutant dans le onclick donc dans le code suivant:

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;



3 lignes là où j'ai mis des points rouges.

1/ un tableau contenant les différentes adresses
tabadresse = ["http://forum.alsacreations.com","http://www.openweb.fr"];
2/ var monid = document.getElementById('monId');
3/ monid.href = tabadresse[this.id];


et dans les miniatures un id qui va valoir 0,1,2,etc... pour faire indice du tableau.


Cette explication peut elle être plus développée ?