Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Gallery] - Template avec commentaires
#10

Bon
j'ai décidé de passer par javascript mais en plus simple :
donc le gabarit :
Code :
<div id="grande">
{foreach from=$images item=image}
<blockquote style="display:none" class="photos_grande" id="{$image->fileid}"><img src="{$image->file|escape:'url'|replace:'%2F':'/'}" alt="{$image->titlename}" width="640" /></br>
<h4>{$image->titlename}</h4>
{$image->fields.vrai_commentaire.value}</blockquote>
{/foreach}
</div>
<div id="miniatures">
{foreach from=$images item=image}
<a href="#grande" onClick="affiche('{$image->fileid}')">
<img src="{$image->thumb|escape:'url'|replace:'%2F':'/'}" alt="{$image->titlename}" />
</a>
{/foreach}
</div>
le css
Code :
.gallery .img {
    height: 120px;
    /*width: 120px;*/
    float: left;
    margin: 10px;
    text-align: center;
}

.gallery .img a {
    display: inline-block;
    border: 2px solid #ddd;
    padding: 1px;
}

.gallery .img a:hover {
    border-color: #999;
}

.gallery img {
    border: none;
}

.gallery .pagenavigation {
    height: 50px;
}

.gallery .prevpage a, .gallery .prevpage em {
    display: block;
    width: 50px;
    height: 39px;
    float: left;
    margin: 0;
    text-indent: -1000px;
    background: url(../../images/previous.png) transparent no-repeat 0 0;
}

.gallery .nextpage a, .gallery .nextpage em {
    display: block;
    width: 50px;
    height: 39px;
    float: left;
    margin: 0 6px 0 0;
    text-indent: -1000px;
    background: url(../../images/next.png) transparent no-repeat 0 0;
}

.gallery .parentlink a {
    display: block;
    width: 50px;
    height: 39px;
    float: left;
    text-indent: -1000px;
    background: url(../../images/uppage.png) transparent no-repeat 0 0;
}

.gallery .pagenavigation a:hover {
    background-position: 0 -40px;
}

.gallery .prevpage em, .gallery .nextpage em {
    background-position: 0 -80px;
}

.gallery .pagelinks {
    float: right;
    border-right: 2px solid #666;
}

.gallery .pagelinks a, .gallery .pagelinks em {
    margin-top: 6px;
    padding: 0 6px;
    border-left: 2px solid #666;
    text-align: center;
    font: bold 11px verdana; color: #666;
}

.gallery .pagelinks em {
    color: #000;
}

.galleryclear {
    clear: both;
}


/* LIGHTBOX */

#lightbox{    position: absolute;    left: 0; width: 100%; z-index: 100; text-align: center; line-height: 0;}
#lightbox img{ width: auto; height: auto;}
#lightbox a img{ border: none; }

#outerImageContainer{ position: relative; background-color: #fff; width: 250px; height: 250px; margin: 0 auto; }
#imageContainer{ padding: 10px; }

#loading{ position: absolute; top: 40%; left: 0%; height: 25%; width: 100%; text-align: center; line-height: 0; }
#hoverNav{ position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; }
#imageContainer>#hoverNav{ left: 0;}
#hoverNav a{ outline: none;}

#prevLink, #nextLink{ width: 49%; height: 100%; background-image: url(data:image/gif;base64,AAAA); /* Trick IE into showing hover */ display: block; }
#prevLink { left: 0; float: left;}
#nextLink { right: 0; float: right;}
#prevLink:hover, #prevLink:visited:hover { background: url(../lightbox/images/prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(../lightbox/images/nextlabel.gif) right 15% no-repeat; }

#imageDataContainer{ font: 10px Verdana, Helvetica, sans-serif; background-color: #fff; margin: 0 auto; line-height: 1.4em; overflow: auto; width: 100%    ; }

#imageData{    padding:0 10px; color: #666; }
#imageData #imageDetails{ width: 70%; float: left; text-align: left; }    
#imageData #caption{ font-weight: bold;    }
#imageData #numberDisplay{ display: block; clear: left; padding-bottom: 1.0em;    }            
#imageData #bottomNavClose{ width: 66px; float: right;  padding-bottom: 0.7em; outline: none;}         

#overlay{ position: absolute; top: 0; left: 0; z-index: 90; width: 100%; height: 500px; background-color: #000; }
et c'est là le problème le javascript:
Code :
<script type="text/javascript">
function affiche(photo_id){
var zones = document.getElementsByTagName("blockquote");
for (zone in zones){
zones[zone].style.display = "none";
}
document.getElementById(photo_id).style.display="block";
}
</script>

Tout ce qui est après la boucle for ne fonctionne pas, si j'enlève la boucle la photos apparait bien, la boucle sert à cacher les grandes photos déjà affichées pour en avoir qu'une seule.
Je comprends pas pourquoi le script ne va pas plus loin que la boucle...
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)