ギャラリー内に画像をロードする関数があります。サイト全体で最後の 20 枚の画像を読み込み、ユーザーが下にスクロールすると、別の 20 枚を読み込み、無限スクロール コードで動作します。
ただし、あるページではこれが機能せず、なぜ機能しないのか困惑しています。
問題のコードを次のように絞り込みました。
function getEachBoardPins($id,$limit=false)
{
$sql = "SELECT
*
FROM
pins
WHERE
board_id = $id
ORDER BY time DESC";
if($limit)
$sql .=" LIMIT $limit" ;
$query = $this->db->query($sql);
return $query->result();
}
これにより、ギャラリー内のすべての画像が読み込まれます。一部のギャラリーには 1000 枚を超える画像があるため、読み込みに永遠に時間がかかります。
最初の行で「$limit=false」の値を true に変更すると、最後にアップロードされた画像のみがレンダリングされます。
解決できるように、誰かが私を助けたり、親切な方向に向けたりできますか?
ありがとう。
編集:
無限スクロール コード:
$(function(){
// alert($('.pin_item').length);
var $alpha = $('#alpha');
$alpha.imagesLoaded( function(){
$alpha.masonry({
itemSelector: '.pin_item',
isFitWidth: true,
isAnimatedFromBottom: true
//isAnimated: true
});
});
$alpha.infinitescroll({
navSelector : '#page-nav', // selector for the paged navigation
nextSelector : '#page-nav a', // selector for the NEXT link (to page 2)
itemSelector : '.pin_item', // selector for all items you'll retrieve
loading: {
finishedMsg: 'No more pages to load.',
img: '<?php echo site_url(); ?>/application/assets/images/ajax_loader_blue.gif'
}
},
// trigger Masonry as a callback
function( newElements ) {
// hide new items while they are loading
var $newElems = $( newElements ).css({ opacity: 0 });
// ensure that images load before adding to masonry layout
$newElems.imagesLoaded(function(){
// show elems now they're ready
$newElems.animate({ opacity: 1 });
$alpha.masonry( 'appended', $newElems, true );
$("a.act_uncomment").hide();
$(".enter_comm").hide();
//Examples of how to assign the ColorBox event to elements
$(".group1").colorbox({rel:'group1'});
$(".group2").colorbox({rel:'group2', transition:"fade"});
$(".group3").colorbox({rel:'group3', transition:"none", width:"75%", height:"75%"});
$(".group4").colorbox({rel:'group4', slideshow:true});
$(".ajax").colorbox({scrolling:false,transition:"elastic"});
$(".youtube").colorbox({iframe:true, innerWidth:425, innerHeight:344});
$(".iframe").colorbox({iframe:true, width:"80%", height:"80%"});
$(".inline").colorbox({inline:true, width:"50%"});
$(".callbacks").colorbox({
onOpen:function(){ alert('onOpen: colorbox is about to open'); },
onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
onClosed:function(){ alert('onClosed: colorbox has completely closed'); }
});
//Example of preserving a JavaScript event for inline calls.
$("#click").click(function(){
$('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
return false;
});
});
}
);
});