Witam wszystkich (IMG:
style_emoticons/default/smile.gif)
Do pewnego projektu wplotłem pewną wtyczkę napisaną w jQuery ale mam pewien problem z tym:
http://tympanus.net/Development/AutomaticI...age/index6.htmlChodzi o to, że jak klikam LOAD MORE... to niby wszystko jest ok ale powiela mi obrazki, a chciałbym żeby były wczytane raz czyli jeśli wczyta się już wszystko z bazy danych to np. zniknie napis LOAD MORE. Na ten moment jest tak, że po każdym kliknięciu LOAD MORE... wczytuje te same obrazki:
http://nportfolio.pl/Framework/galeriaSkrypt:
<div class="am-container" id="am-container"> {foreach from=$list item=foo}
<a href="{$rootpatch}templates/zdjecia/mini/{$foo['minik']}" data-lightbox="roadtrip"><img src="{$rootpatch}templates/zdjecia/mini/{$foo['minik']}" alt="{$foo['nazwa']}" /></a> {/foreach}
<div id="loadmore" class="loadmore" style="width: 100%; display: block;">Wiecej...
</div> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="{$rootpatch}includes/js/jquery.montage.js"></script> <script type="text/javascript"> $(function() {
var $container = $('#am-container'),
$imgs = $container.children('img').hide(),
totalImgs = $imgs.length,
cnt = 0;
var $container = $('#am-container'),
$imgs = $container.find('img').hide(),
totalImgs = $imgs.length,
cnt = 0;
$imgs.each(function(i) {
var $img = $(this);
$('
<img/>').load(function() {
++cnt;
if( cnt === totalImgs ) {
$imgs.show();
$container.montage({
fillLastRow : true,
alternateHeight : true,
alternateHeightRange : {
min : 90,
max : 240
}
});
$('#overlay').fadeIn(500);
$('#loadmore').show().bind('click', function() {
newimgs = '';
{foreach from=$lista item=foos}
newimgs += '
<a href="{$rootpatch}templates/zdjecia/mini/{$foos['minik']}" data-lightbox="roadtrip"><img src="{$rootpatch}templates/zdjecia/mini/{$foos['minik']}"/></a>';
{/foreach}
var $newimages = $( newimgs );
$newimages.imagesLoaded( function(){
$container.append( $newimages ).montage( 'add', $newimages );
});
});
}
}).attr('src',$img.attr('src'));
});
});
public function galeria() {
$this->model->smarty->assign("siteTitle", "Galeria", true);
$sql = new classMysql();
$this->setTpl('Gallery');
$id = $sql->selectAsoc("SELECT MIN(id) AS min, MAX(id) AS max FROM `framework_portfolio`");
$rand1 = rand($id[0]['min'], $id[0]['max']); $rand2 = rand($id[0]['min'], $id[0]['max']); while($rand1==$rand2 or $rand1>=$rand2) {
$rand2 = rand($id[0]['min'], $id[0]['max']); }
$random = $rand2-$rand1;
$wylicz = '';
$ile = $random+$id[0]['min'];
$min = $id[0]['min'];
for($i=$min;$i<$ile;$i++)
$wylicz = $wylicz.$i.",";
$strona = $sql->selectAsoc("SELECT `id`, `nazwa`, `minik` FROM `framework_portfolio` ORDER BY `id` ASC LIMIT 0, $random");
$this->model->smarty->assign("list", $strona, true);
$stronica = $sql->selectAsoc("SELECT `nazwa`, `minik` FROM `framework_portfolio` WHERE `id` NOT IN($wylicz)");
$this->model->smarty->assign("lista", $stronica, true);
}
Jak mogę zrobić tak, żeby napis LOAD MORE.../WIĘCEJ... znikał jak wczytają się już wszystkie obrazki z bazy?
Z góry dziękuje za odpowiedź (IMG:
style_emoticons/default/smile.gif)