我正在寻求帮助
我找到了我发现并试图调整的代码。它可以工作但是从一张专辑中获取图像,此时此刻有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);
});
答案 0 :(得分:0)
我认为您在初始化之前使用topLimit
。除此之外,您需要获取所有图片的所有网址,而不仅仅是在返回数组中随机选择其中一些网址。
答案 1 :(得分:0)
导致我自己写作,现在它会起作用。也实现了fancybox。自从搞乱json和javascript / livescript以来已经好几年了。
function getthumbs(gallery_id) {
viewer = $('#viewer'), thumbs = $('#thumbs');
var hist = [];
var rnd = 0;
$.getJSON('//graph.facebook.com/' + gallery_id + '/photos?callback=?', function (json, status, xhr) {
var imgs = json.data;
$('#thumbs img').remove();
for (i = 0; i < 12; i++) {
rnd = Math.floor((Math.random() * imgs.length - 1) + 1);
$('<img src="' + imgs[rnd].images[8].source + '">').appendTo(thumbs).fancybox({
href: imgs[rnd].images[3].source
});
}
});
}
getthumbs('425912634133232');
$(document).ready(function () {
setInterval(function () {
getthumbs('425912634133232');
}, 20000);
});