水平方向にスクロールすると、APIからajaxとjsonを介してデータを読み込むスクロールdivがあります。
私は現在それを機能させていますが、私が抱えている問題は、1つのページに複数のスクロールdivがあることです。スクロールされているdivのIDをjqueryに通知して、ajaxが別のAPI呼び出しを使用して、その特定のdivに正しいデータをロードできるようにする必要があります。
これが私のコードのHTMLです:
<div id="ip-technology" class="scroll-box">
<h2>Latest Videogames Titles</h2>
<a class="view" href="technology.html">See all</a>
<ul class="scroll-horizontal mCustomScrollbar _mCS_3">
<div class="mCustomScrollBox mCSB_horizontal" id="mCSB_3" style="position:relative; height:100%; overflow:hidden; max-width:100%;"><div class="mCSB_container" style="position: relative; left: 0px; width: 6721px; ">
<li class="product-Magazine">
<a href="#">
<span class="store-badge"></span>
<img src="cover.jpg" width="124" height="166">
</li>
</div>
<div class="mCSB_scrollTools" style="position: absolute; display: block; ">
<div class="mCSB_draggerContainer" style="position:relative;">
<div class="mCSB_dragger ui-draggable" style="position: absolute; width: 149px; ">
<div class="mCSB_dragger_bar" style="position:relative;">
</div></div><div class="mCSB_draggerRail"></div>
</div></div></div>
</ul>
そしてここにjquery/ajaxがあります...
$(".scroll-horizontal").mCustomScrollbar({
horizontalScroll:true,
scrollEasing:"easeOutBack",
advanced:{
autoExpandHorizontalScroll: true
},
callbacks:{
onTotalScrollOffset: 30,
onTotalScroll: function(){
var url = 'http://www.URL-TO-API.com' //Needs to somehow pass in the div id
$.ajax({
type: 'GET',
url: url,
async: true,
jsonpCallback: 'callback',
dataType: 'jsonp',
success: function(data)
{
$.each(data.products, function(key, val)
{
if (loadNumber <= 4) {
$('li.loading').before('<li class="product-ebook"><a href="product.html"><span class="store-badge"></span><img src="'+val.image+'" width="124" height="166" /><h3>'+val.title+'</h3></a></li>');
};
if (loadNumber >= 4) {
$('li.loading').hide();
};
});
$('h3').html(function(index, currentHtml) {
return currentHtml.replace('Issue', '<span>Issue')
.replace('Vol', '<span>Vol');
$(this).apppend("</span>");
});
$('.scroll-horizontal').mCustomScrollbar("update");
},
error: function() {
console.log('failed');
}
});
}
}
});