水平方向のjScrollPaneを再初期化するのに問題があります。ページが読み込まれると、4つの画像が動的に読み込まれ、ユーザーがパネルをスクロールすると、次の4つの画像が表示されます。これは発生しません。次の画像は表示されますが、.jspPaneのサイズは同じであるため、許可されません。バーをもうスクロールします。
コードは次のとおりです。
$(function()
{
var pane = $('.scroll-pane');
pane.jScrollPane({showArrows: true,autoReinitialise: true});
var contentPane = pane.data('jsp').getContentPane();
var api = pane.data('jsp');
var $rowItems = $('<p></p>');
var showItems = 4;
var startItem = 0;
var itemWidth = 100;
contentPane.append($rowItems)
getThumbnails(startItem);
pane.scroll(function(){
var paneWidth = $(this).width();
var contentWidth = $rowItems.width();
var scrollPosition = Math.abs(parseInt($('.jspPane').css('left')));
console.log(contentWidth - paneWidth - scrollPosition);
if ((contentWidth - paneWidth - scrollPosition) < 10){
startItem = startItem + showItems;
getThumbnails(startItem);
}
})
function getThumbnails(n){
$.ajax({
url : 'items.xml',
success : function(data){
for( var i = n; i< n + showItems; i++){
$rowItems.append('<a href="'+ $(data).find('item').eq(i).attr('thumb') +'" id="pic'+ i +'"></a>');
loadImageThumb($(data).find('item').eq(i).attr('thumb'), $(data).find('item').eq(i).attr('imageUrl'),$(data).find('item').eq(i).find('description').text(), i);
}
}
})
}
function loadImageThumb(thumb, img, description, i){
var image = new Image();
$(image).load(function(){
var height = 80,
$pic = $('#pic'+ i, $rowItems),
imgURL = $pic.attr('href');
$pic.attr('href',imgURL);
$(this).appendTo($pic).hide().fadeIn('slow');
}).attr('src', thumb);
}
});
垂直スクロールペインに同様のコードを使用しましたが、機能しました。よろしくお願いします。