begin process at 2012 05 29 10:24:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

modification code galerie photo


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

modification code galerie photo

vendredi 27 mai 2011 à 09:31:09 | modification code galerie photo

aiglon22

bonjour,
je souhaiterai modifier le scripte d'une galerie photo trouvée sur le site d'alsacréations, voici le lien du tuto. Le but est de mettre plusieurs galeries par page.

Comment par conséquence modifier la fonction JavaScript gérant la galerie.

merci de votre aide.

Code 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 
 
    // 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 




Code HTML :
<div id="galerie"> 
    <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> 
 
     
    <dl id="photo"> 
        <dt>Titre de la photo 1</dt> 
        <dd><img id="big_pict" src="images/photo1.png" alt="Photo 1 en taille normale" /></dd> 
    </dl> 
</div> 



vendredi 27 mai 2011 à 13:10:49 | Re : modification code galerie photo

007Julien


La fonction displayPics() installe des évènements (onclick) sur les images miniatures disposées dans la liste non ordonnée (ul unordered list en vo) repérée par l'identifiant (id) égal à galerie_mini. Ces évènements chargent les images non réduites et leurs titres dans les deux lignes (dt et dd) du container (id) nommé photo.

S'il s'agit seulement d'afficher les images d'une autre galerie de miniatures dans le même container, il suffit d'ajouter un argument (laGalerie qui est maintenant une variable et non plus une chaîne de caractère) à la fonction pour désigner la galerie à traiter.

Code Javascript :
function displayPics(laGalerie){
   var photos = document.getElementById(laGalerie); 
    // On récupère l'élément ayant pour id laGalerie
   // ... le reste sans changement
}

Il conviendra alors, après chargement de la page (*) de lancer la fonction pour chacune des galeries (nommées par exemple 'galerie_mini_1' et 'galerie_mini_2')

Code Javascript :
displayPics('galerie_mini_1');
displayPics('galerie_mini_2');


(*) Les galeries devant exister avant le lancement de ces fonctions ces deux dernières lignes de script devront être placées (entre deux balises de script) à la fin du body ou bien encore dans une fonction lancée, comme l'était displayPics, par un window.onload.

Enfin, si le container de destination devait être également dupliqué, il conviendrait de prévoir de manière analogue un second argument à la fonction pour désigner celui-ci. Ouf!
vendredi 27 mai 2011 à 17:54:12 | Re : modification code galerie photo

aiglon22


Enfin, si le container de destination devait être également dupliqué...



bonjour julien,

oui le container de destination est aussi dupliqué, j'ai codé ainsi :

Code HTML :
<div id="galerie"> 
    <ul id="galerie_mini_1"> 
        <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> 
        
    </ul> 
 
     
    <dl id="photo"> 
        <dt>Titre de la photo 1</dt> 
        <dd><img id="big_pict" src="images/photo1.png" alt="Photo 1 en taille normale" /></dd> 
    </dl> 
</div>

<div id="galerie"> 
    <ul id="galerie_mini_2"> 
        <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> 
        
    </ul> 
 
     
    <dl id="photo_2"> 
        <dt>Titre de la photo 1</dt> 
        <dd><img id="big_pict_2" src="images/photo1.png" alt="Photo 1 en taille normale" /></dd> 
    </dl> 
</div>



Code Javascript :
function displayPics(galerie_mini_1) 
{ 
    var photos = document.getElementById('galerie_mini_1') ; 
    // 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 
        }; 
    } 
} 


function displayPics(galerie_mini_2) 
{ 
    var photos = document.getElementById('galerie_mini_2') ; 
    // 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_2') ; 
    // 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_2').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 = function(){ 
displayPics('galerie_mini_1');
displayPics('galerie_mini_2'); 
}


Là seul la seconde galerie fonctionne, et je prévois d'en avoir 5 ou 6 sur une page.

merci de ton aide.
vendredi 27 mai 2011 à 18:38:48 | Re : modification code galerie photo

007Julien


Une fonction, c'est fait pour travailler sur des objets différents sans réécrire le code.

L'appel de fonction (window.onload) est bon mais la fonction ne doit figurer qu'une fois avec un vrai argument (ici arg). Il conviendrait donc d'écrire :

function displayPics(arg){
var photos = document.getElementById(arg) ;
La variable arg prendra la valeur 'galerie_mini_1' puis 'galerie_mini_2' lors des appels du window.onload.


Toutefois avec des containers de destination différents et 5 ou 6 galeries, il devient plus efficace de passer simplement le numéro de la galerie.

D'où la fonction

Code Javascript :
//Ligne modifiée argument nos
function displayPics(nos) 
{ 

// Ligne modifiée 'galerie_mini_'+nos
    var photos = document.getElementById('galerie_mini_'+nos) ;     // On récupère l'élément ayant pour id galerie_mini_nos 
 
    var liens = photos.getElementsByTagName('a') ; 
    // On récupère dans une variable tous les liens contenu dans galerie_mini 

// Ligne modifiée 'big_pict_'+nos
    var big_photo = document.getElementById('big_pict_'+nos) ; 
    // Ici c'est l'élément ayant pour id big_pict_nos qui est récupéré, c'est notre photo en taille normale 
 

// Ligne modifiée 'photo_'+nos
    var titre_photo = document.getElementById('photo_'+nos).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 
        }; 
    } 
} 


Bien entendu, le code HTML devra être modifié en conséquence en ajoutant un _1 aux identifiants photo et big_pic pour la galerie n°1 (ce qui a été fait paour la galerie 2) et en procédant de manière analogue avec 3, 4, 5 ou 6 avec les suivantes...

Enfin, une boucle permettra d'instaler les évènements sur les différentes galeries

Code Javascript :
window.onload = function(){var i,nbrGlr=6; 
   for (i=1;i<=nbrGlr;i++) displayPics(i);
}

Bonne continuation.






dimanche 29 mai 2011 à 21:55:32 | Re : modification code galerie photo

aiglon22

juste pour dire :" merci julien "
ça marche nickel


Cette discussion est classée dans : code, var, photo, mini, galerie


Répondre à ce message

Sujets en rapport avec ce message

menu ruban avec vignette [ par pule ] bonjour a tous j'ai trouvé un script tous simple pour faire une galerie mais le probleme est que les miniatures ne s'affiche pas en menu ruban mais s' Soucis avec galerie photo [ par Vivi82 ] Salut à tous,Comme je m'y connais pas vraiment en javascript , j'aimerai bien un ptit coup main, si possible J'ai comme qui dirait un ptit soucis avec galerie photo javascript [ par titeyes ] [^^confus2]Bonjour, J'ai réaliser une galerie photo en javascript à l'aide du tutoriel sur alsacréation. J'aimerais rajouter des flêches à gauche e Modif dans script pour galerie [ par htaine ] Bonjour à tous, je sollicite votre aide pour un petit détail qui me chagrine. J'ai un script pour une galerie photo, tout est OP, sauf qu'au lieu d'af listes déroulantes liées jsp [ par twister207 ] Bonjour, Je poste pour la première fois dans ce forum et je vous remercie d'avance pour vos réponses. Je suis débutante en jsp et je dois alimenter code scripte inconue [ par pitsi ] Slt! j'aimerais savoir ce que fait cette code scripte ?? parce que avant il ni avais pas cela sur mon site maintenant il en a sur tout mes page php Scinder du code en deux pages [ par Prof_Matches ] Bonjour, Voici le code que j'ai sur une page HTML : J'aimerais avoir sur : [*] - page 1 : les variables var et le résultat des document.write [*] Parcours d'un tableau en JS [ par Canyata ] Bonjour à tous [^^happy17] J'ai une question à vous poser. J'ai un tableau en HTML sur ma page: [code=php]echo""; echo""; echo""; echo""; Affichage galerie sous firefox [ par rodger007 ] Bonjour à tous, je ne suis pas un expert en dev, c'est la raison pour laquelle j'ai besoin de vous. Je suis entrain de faire un site web et j'ai inté Constructeur Ajax dans classe javascript [ par TheGorgo ] Bonjour, Je cherche à créer des classes javascript avec deux constructeurs. L'un d'eux est un à partir objet documentElement (facile). Pour l'autre c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales