IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

JQuery Galerie d'image avec légende


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut JQuery Galerie d'image avec légende
    Bonjour à tous !

    J'en appelle à vous pour modifier un tuto que j'ai suivi.

    Le tuto étant bien fait j'ai pu recréer l'effet à ma convenance mais là je bloque sur un ajout. Je souhaite modifier le code html suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <ul id="thumbs">
        <li>
    	<a href="./images/1.jpg" title="Titre">
               <img src="./images/thumbs/1.jpg" alt="desc" />
    	</a>
        </li>
        <li>
    	<a href="./images/2.jpg" title="Titre">
               <img src="./images/thumbs/2.jpg" alt="desc" />
    	</a>
        </li>
    </ul>
    en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <ul id="thumbs">
        <li>
    	<a href="./images/1.jpg" title="Titre">
               <img src="./images/thumbs/1.jpg" alt="desc" />
               <span>Description</span>
    	</a>
        </li>
        <li>
    	<a href="./images/2.jpg" title="Titre">
               <img src="./images/thumbs/2.jpg" alt="desc" />
               <span>Description</span>
    	</a>
        </li>
    </ul>
    Je souhaite donc faire apparaître une légende sous mes grandes images avec le même effet de fade au clic de chaque thumb, j'ai eu beau tourner dans tous les sens, je n'y arrive pas...

    JS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    jQuery(function($){
     
      var settings = {
        thumbListId: "thumbs",
        imgViewerId: "viewer",
        activeClass: "active",
        activeTitle: "Photo en cours de visualisation",
        loaderTitle: "Chargement en cours",
        loaderImage: "images/loader.gif"
      };
     
      var thumbLinks = $("#"+settings.thumbListId).find("a"),
        firstThumbLink = thumbLinks.eq(0),
        highlight = function(elt){
          thumbLinks.removeClass(settings.activeClass).removeAttr("title");
          elt.addClass(settings.activeClass).attr("title",settings.activeTitle);
        },
        loader = $(document.createElement("img")).attr({
          alt: settings.loaderTitle,
          title: settings.loaderTitle,
          src: settings.loaderImage
        });
     
      highlight(firstThumbLink);
     
      $("#"+settings.thumbListId).after(
        $(document.createElement("p"))
          .attr("id",settings.imgViewerId)
          .append(
            $(document.createElement("img")).attr({
              alt: "",
              src: firstThumbLink.attr("href")
            })
          )
      );
     
      var imgViewer = $("#"+settings.imgViewerId),
        bigPic = imgViewer.children("img");
     
      thumbLinks
        .click(function(e){
          e.preventDefault();
          var $this = $(this),
            target = $this.attr("href");
          if (bigPic.attr("src") == target) return;
          highlight($this);
          imgViewer.html(loader);
          bigPic
            .load(function(){
              imgViewer.html($(this).fadeIn(250));
            })
            .attr("src",target);
        });
     
    });
    CSS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    body {background:#222;}
    img {vertical-align:middle; border:none;}
    #thumbs {overflow:auto; list-style:none; margin:30px; padding:0;}
    #thumbs li {float:left;}
    #thumbs a {display:block; padding:10px; outline:none;}
    #thumbs a:hover, #thumbs a:focus {background:#fff;}
    #thumbs a.active {background:#000;}
    #viewer {position:relative; width:700px; height:465px; margin-left:30px;}
    #viewer img[src*="loader"] {position:absolute; left:50%; top:50%; margin:-15px 0 0 -15px;}
    Un petit coup de pouce ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Ce tutoriel n'est rien d'autre que la copie, photos incluses, de http://leandrovieira.com/projects/jquery/lightbox/

    Ce plugin a déjà fait l'objet d'une intervention, voici la copie de l'exemple fourni à cette occasion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <!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>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<meta name="Author" content="Daniel Hagnoul" />
    	<title>Test Lightbox</title>
        <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" media="screen" />
    	<style type="text/css">
    		body {
    			background-color:#696969;
    			color:#000000;
    			font-family:Arial, Helvetica, sans-serif;
    			font-size:medium;
    			font-style:normal;
    			font-weight:normal;
    			line-height:normal;
    			letter-spacing:normal;
    		}
    		div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
    			margin:0px;
    			padding:0px;
    		}
    		div#conteneur {
    			width:95%;
    			margin:12px auto;
    			padding:6px;
    			background-color:#FFFFFF;
    			color:#000000;
    			border:1px solid red;
    			font-size:0.8em;
    		}
     
    		/* jQuery lightBox plugin - Gallery style */
    		#gallery {
    			background-color: #444;
    			padding: 10px;
    			width: 520px;
    		}
    		#gallery ul { list-style: none; }
    		#gallery ul li { display: inline; }
    		#gallery ul img {
    			border: 5px solid #3e3e3e;
    			border-width: 5px 5px 20px;
    		}
    		#gallery ul a:hover img {
    			border: 5px solid #fff;
    			border-width: 5px 5px 20px;
    			color: #fff;
    		}
    		#gallery ul a:hover { color: #fff; }
    	</style>
    	<script type="text/javascript" src="../lib/jquery-1.3.2.min.js"></script>
        <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>
    	<script type="text/javascript">
    		$(document).ready(function(){ 
    			$("#gallery a").lightBox();
     
    			$("#go").live("click", function(){
    				$("#goGallery").click();
    			});
    		});
    	</script>
    </head>
    <body>
    	<div id="conteneur">
    		<button id="go" type="button">OK</button>
    		<div id="gallery">
    			<ul>
    				<li>
    					<a id="goGallery" href="photos/image1.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery').lightBox();">
    						<img src="photos/thumb_image1.jpg" width="72" height="72" alt="" />
    					</a>
    				</li>
    				<li>
    					<a href="photos/image2.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery a').lightBox();">
    						<img src="photos/thumb_image2.jpg" width="72" height="72" alt="" />
    					</a>
    				</li>
    				<li>
    					<a href="photos/image3.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery a').lightBox();">
    						<img src="photos/thumb_image3.jpg" width="72" height="72" alt="" />
    					</a>
    				</li>
    				<li>
    					<a href="photos/image4.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery a').lightBox();">
    						<img src="photos/thumb_image4.jpg" width="72" height="72" alt="" />
    					</a>
    				</li>
    				<li>
    					<a href="photos/image5.jpg" title="Utilize a flexibilidade dos seletores da jQuery e crie um grupo de imagens como desejar. $('#gallery a').lightBox();">
    						<img src="photos/thumb_image5.jpg" width="72" height="72" alt="" />
    					</a>
    				</li>
    			</ul>
    		</div>
    	</div>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Merci pour ton aide mais ce n'est pas d'une lightbox dont j'ai besoin, mais bien de l'effet de fade sur mes thumbs, je pense ne pas être loin de trouver la solution mais si tu as a une piste pour modifier le code actuel....

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Je veux bien croire que cela ne vous agrée pas, mais avez-vous pris la peine de regarder la démo ?

    Il y a un effet de fading et des légendes aux photos.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Désolé danielhagnoul, je ne voulais pas te froisser, j'ai regardé le code mais j'avoue ne pas savoir encore rééxploiter du code exterieur pour améliorer ma solution. Néanmoins, cela m'a permis de m'y pencher sérieusement avec un ami pas plus tard qu'hier soir et nous avons trouvé la solution suivante :

    HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <ul id="thumbs">
        <li>
    	<a href="./images/1.jpg" title="Titre">
               <img src="./images/thumbs/1.jpg" alt="desc" />
               <span>Desc 1</span>
    	</a>
        </li>
        <li>
    	<a href="./images/2.jpg" title="Titre">
               <img src="./images/thumbs/2.jpg" alt="desc" />
               <span>Desc 2</span>
    	</a>
        </li>
        <li>
    	<a href="./images/3.jpg" title="Titre">
               <img src="./images/thumbs/3.jpg" alt="desc" />
               <span>Desc 3</span>
    	</a>
        </li>
        <li>
    	<a href="./images/4.jpg" title="Titre">
               <img src="./images/thumbs/4.jpg" alt="desc" />
               <span>Desc 4</span>
    	</a>
        </li>
    </ul>
    JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    jQuery(function($){
     
      var settings = {
        thumbListId: "thumbs",
        imgViewerId: "viewer",
        activeClass: "active",
        activeTitle: "Photo en cours de visualisation",
        loaderTitle: "Chargement en cours",
        loaderImage: "./images/design/progress.gif"
      };
     
      var thumbLinks = $("#"+settings.thumbListId).find("a"),
          firstThumbLink = thumbLinks.eq(10),
          highlight = function(elt){
            thumbLinks.removeClass(settings.activeClass).removeAttr("title");
            elt.addClass(settings.activeClass).attr("title",settings.activeTitle);
          },
          loader = $(document.createElement("p")).append($(document.createElement("img")).attr({
            alt: settings.loaderTitle,
            title: settings.loaderTitle,
            src: settings.loaderImage
          }).addClass('loader'));
     
      highlight(firstThumbLink);
     
      $("#"+settings.thumbListId).after(
    	$(document.createElement('div')).attr("id","bigpic")
    		.append( $(document.createElement("p")).attr("id",settings.imgViewerId)
    			.append($(document.createElement("img")).attr( {
    	          alt: firstThumbLink.find('img').attr("alt"),
    	          src: firstThumbLink.attr("href")
    	        })).append( $(document.createElement("span")).text( firstThumbLink.find('span').text() ) )
    	    ).append(loader)
    	);
     
      var imgViewer = $("#"+settings.imgViewerId),
          bigPic = imgViewer.children("img");
     
      thumbLinks
        .click(function(e){
          e.preventDefault();
          var $this = $(this);
          if (bigPic.attr("src") == $this.attr("href")) return;
     
          highlight($this);
          imgViewer.fadeOut(400, function() {
    	      imgViewer.children("img").load( function() {
    	          imgViewer.find('span').text($this.find('span').text());
    	          imgViewer.fadeIn(400);
    	      } ).attr( { src: $this.attr("href"), alt: $this.find('img').attr('alt') } );
          } );
        });
     
    });
     
    $( function() { 
    	$("#thumbs span").hide();
    } );

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je débute en javascript et j'ai quelques soucis avec ma galerie d'images. J'ai également suivi un tutoriel javascript et le tout fonctionne bien. J'ai adapté le code pour ajouter une légende grâce à une balise <span> et là aussi ça fonctionne bien.
    Ensuite j'ai voulu ajouter un lien à la légende afin d'ouvrir l'image en taille originale dans un nouvel onglet. Et c'est là que ça coince. Je dois faire une erreur au niveau du code javascript.
    Sinon, j'ai pensé à une autre possibilité. Au lieu de créer une balise <span>, la description avec le lien pourrait être extrait du titre du lien vers la photo. Du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <ul id="thumbs"> 
            <li>
    <a href="images/galerie_affiches/photo01.jpg" title="<a href='images/galerie_affiches/photo01_O.jpg' target='_blank' >Download original</a>"><img src="images/minis_affiches/photo01.jpg" style="border:0px; " alt="desc" /> </a>
    </li> 
    </ul>
    Mais je ne vois pas comment faire en javascript. J'ai pensé à ajouter une variable "description"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var description = $(this).attr("title");
    faudrait qu'il puisse extraire le titre pour créer une nouvelle balise en dessous de l'image.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('#viewer span').html("" + description + "");  
        });
    Mais je ne sais pas comment ajouter tout ça au code de base.
    Quelqu'un peut m'aider?

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. galerie d'images avec zoom
    Par akn005 dans le forum Débuter
    Réponses: 1
    Dernier message: 24/05/2009, 23h03
  2. [JQuery] Galerie photo dynamique avec spry
    Par Invité dans le forum jQuery
    Réponses: 4
    Dernier message: 28/08/2008, 15h53
  3. [AJAX] Construction d'une galerie d'images avec Ajax
    Par Pmko01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2008, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo