我正在尝试从 API 创建一个 Flickr 幻灯片,其中仅显示第一张图像,当单击它时,它会在颜色框(灯箱插件)中启动画廊的其余部分。
这是我的代码:
var url = "http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=f0b84fba1c00631410b85b90720f52ba&photoset_id=72157632271202012";
var classes = ['show', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide', 'hide'];
var src;
$.getJSON(url + "&format=json&jsoncallback=?", function (data) {
$.each(data.photoset.photo, function (i, item) {
src = "http://farm" + item.farm + ".static.flickr.com/" + item.server + "/" + item.id + "_" + item.secret + ".jpg";
title = item.title;
$(document).ready(function () {
$("<a>").attr({
"href": src,
"class": "gallery",
"title": title
}).html(
$("<img />").attr({
"src": src,
"alt": title,
"class": (classes[i]), //line in question
"width": "240",
"height": "180"
})
).appendTo("#thumb");
});
});
});
$(window).load(function () {
$(".gallery").colorbox({
rel: 'group1'
});
});
这很好用,除了我将“显示”类添加到第一个图像和“隐藏”到其余图像的方式对于长类数组来说真的很笨重。此外,随着 flickr 照片集的增长,这将不再起作用,因为它用完了数组中的隐藏。
必须有一个更好的方法来做到这一点,它可能涉及一个 if else 语句,它只是说第一个图像得到“显示”类,而所有其他图像得到“隐藏”类。
谢谢!