我正在寻求帮助
我有我找到并尝试 tweek 的代码。它可以工作,但从目前有 26 个相册中获取图像。我只想随机获得 11 个并添加到 div 中。如果您能提供帮助,那就太好了。我尝试添加历史记录,以便至少在相同显示的 11 张照片中不会使用索引。如果有人也可以帮助在功能上清理它,那就太好了。我为在车祸中丧生的侄女免费做这件事。
http://jsfiddle.net/ad5qa/2JjbV/
$.fn.fbPhotos = function (album, limit) {
function base_append(obj) {
$(base).append(obj);
}
function getPhoto(obj) {
var id = obj.id;
var img = obj.img;
var link = obj.link;
var wrap = $('<div></div>').attr({
'class': 'fb-photo',
'id': id
});
var avatar = new Image();
avatar.src = img;
var _avatar = $('<a></a>').attr('href', link).attr('target', '_blank').attr('class', 'avatar').html(avatar);
$(wrap).append($(_avatar));
return wrap;
}
function init() {
fetch();
}
function fetch() {
var r;
var data = {};
$.ajax({
url: 'https://graph.facebook.com/' + albumId + '/photos?type=small&limit=' + topLimit,
type: 'GET',
dataType: 'jsonp',
data: data,
success: function (obj) {
// console.log(obj);
if (obj.error) {
/* var img = new Image();
img.src = theme_url + '/images/ico_fail_bird.png';
wipe(img); */
return false;
} else {
var results = {};
for (var k = 0; k < obj.data.length; k++) {
if (obj.data[k].images) {
results[k] = {
'id': obj.data[k].id,
'img': obj.data[k].images[8].source,
'link': obj.data[k].link
};
}
}
k = 0;
var hist = [];
for (var w = 0; w < 11; w++) {
var rnd = Math.floor((Math.random() * obj.data.length - 1) + 1);
if ($.inArray(rnd, hist) == -1) {
hist.push(rnd);
$('.vcard').append(rnd + ' - ');
base_append(getPhoto(results[rnd]));
k++;
if (k >= topLimit) {
break;
}
}
}
if (hist.length > obj.data.length - 2) hist = null;
(function showNext(jq) {
jq.eq(0).show("slide", null, 100, function () {
(jq = jq.slice(1)).length && showNext(jq);
});
})($('div.fb-photo'));
return true;
}
},
error: function (obj) {
// @todo: do something like append an error message or an error image
/* var img = new Image();
img.src = '/images/fail.png';
wipe(img); */
return false;
}
});
}
if ($(this).size() > 0) {
var base = $(this);
var topLimit = (limit ? limit : 50);
var albumId = (album ? album : ($(this).attr("fbAlbum") ? $(this).attr("fbAlbum") : '0'));
init();
}
};
$(".block-facebook").fbPhotos();
$(document).ready(function () {
setInterval(function () {
$(".block-facebook").fbPhotos();
}, 5000);
});