10/11/2012, 14:15:38
Bon
j'ai décidé de passer par javascript mais en plus simple :
donc le gabarit :
le css
et c'est là le problème le javascript:
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...
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>
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; }
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...