在 ContentFlow 的官方网站上有 AJAX 部分,以及如何使用它的示例:http ://www.jacksasylum.eu/ContentFlow/ajax_example.inc.php 。
主要思想是所有这些图像都在一个地方处理。
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 preloader 的回调一起使用
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 很吸引人:
清除和重新填充流
只显示两张图片
圆形视图
一次推送10多张图片