ContentFlowの公式サイトにはAJAXセクションがあり、その使用方法の例はhttp://www.jacksasylum.eu/ContentFlow/ajax_example.inc.phpです。
主なアイデアは、これらすべての画像が1か所で処理されることです。
var ajax_cf = new ContentFlow('ajax_cf',
...
function addPictures(t){
var ic = document.getElementById('itemcontainer');
var is = ic.getElementsByTagName('img');
for (var i=0; i< is.length; i++) {
ajax_cf.addItem(is[i], 'last');
}
}
appPicturesは、画像の読み込みが完了したときに呼び出されるコールバック関数です。
ライトボックスが期待する構造に従って、それらを非表示のdivにグループ化できます。
jqueryプリローダーからのコールバックで使用しています
jQuery.preloadImages = function () {
if (typeof arguments[arguments.length - 1] == 'function') {
var callback = arguments[arguments.length - 1];
} else {
var callback = false;
}
if (typeof arguments[0] == 'object') {
var images = arguments[0];
var n = images.length;
} else {
var images = arguments;
var n = images.length - 1;
}
var not_loaded = n;
for (var i = 0; i < n; i++) {
jQuery(new Image()).attr('src', images[i]).load(function () {
if (--not_loaded < 1 && typeof callback == 'function') {
callback();
}
});
}
}
使用法 :
$.preloadImages(imagesArray, function () {
addPictures();
});
私の場合のimagesArrayは、相対パスの配列です。
ContentFlowは次の点でキャッチーであることに注意してください。
フローのクリアと再入力
2つの画像のみを表示
円形ビュー
一度に10枚以上の画像をプッシュ