我在我的网站上使用instagram.js。当前正在拉入图像,其中最新照片显示在队列的底部。我想颠倒顺序,让最新的图像显示在顶部,而较旧的图像显示在底部。
以下是我正在使用的脚本:
(function ($){
$.fn.instagram = function (options) {
var that = this,
apiEndpoint = "https://api.instagram.com/v1",
settings = {
hash: null
, userId: null
, locationId: null
, search: null
, accessToken: null
, clientId: null
, show: null
, onLoad: null
, onComplete: null
, maxId: null
, minId: null
, next_url: null
, image_size: null
, photoLink: true
};
options && $.extend(settings, options);
function createPhotoElement(photo) {
var image_url = photo.images.thumbnail.url;
if (settings.image_size == 'low_resolution') {
image_url = photo.images.low_resolution.url;
}
else if (settings.image_size == 'thumbnail') {
image_url = photo.images.thumbnail.url;
}
else if (settings.image_size == 'standard_resolution') {
image_url = photo.images.standard_resolution.url;
}
var innerHtml = $('<img>')
.addClass('instagram-image')
.attr('src', image_url);
if (settings.photoLink) {
innerHtml = $('<a>')
.attr('target', '_blank')
.attr('href', photo.link)
.append(innerHtml);
}
return $('<div>')
.addClass('instagram-placeholder')
.attr('id', photo.id)
.append(innerHtml);
}
function createEmptyElement() {
return $('<div>')
.addClass('instagram-placeholder')
.attr('id', 'empty')
.append($('<p>').html('No photos for this query'));
}
function composeRequestURL() {
var url = apiEndpoint,
params = {};
if (settings.next_url != null) {
return settings.next_url;
}
if (settings.hash != null) {
url += "/tags/" + settings.hash + "/media/recent";
}
else if (settings.search != null) {
url += "/media/search";
params.lat = settings.search.lat;
params.lng = settings.search.lng;
settings.search.max_timestamp != null && (params.max_timestamp = settings.search.max_timestamp);
settings.search.min_timestamp != null && (params.min_timestamp = settings.search.min_timestamp);
settings.search.distance != null && (params.distance = settings.search.distance);
}
else if (settings.userId != null) {
url += "/users/" + settings.userId + "/media/recent";
}
else if (settings.locationId != null) {
url += "/locations/" + settings.locationId + "/media/recent";
}
else {
url += "/media/popular";
}
settings.accessToken != null && (params.access_token = settings.accessToken);
settings.clientId != null && (params.client_id = settings.clientId);
settings.minId != null && (params.min_id = settings.minId);
settings.maxId != null && (params.max_id = settings.maxId);
settings.show != null && (params.count = settings.show);
url += "?" + $.param(params)
return url;
}
settings.onLoad != null && typeof settings.onLoad == 'function' && settings.onLoad();
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: composeRequestURL(),
success: function (res) {
var length = typeof res.data != 'undefined' ? res.data.length : 0;
var limit = settings.show != null && settings.show < length ? settings.show : length;
if (limit > 0) {
for (var i = 0; i < limit; i++) {
that.append(createPhotoElement(res.data[i]));
}
}
else {
that.append(createEmptyElement());
}
settings.onComplete != null && typeof settings.onComplete == 'function' && settings.onComplete(res.data, res);
}
});
return this;
};
})(jQuery);
答案 0 :(得分:0)
应该能够像你这样使用'长度'变量:
if (limit > 0) {
for (var i = length; i > length-limit; i--) {
that.append(createPhotoElement(res.data[i]));
}
}
或者,您可以将所有图像放在数组中并使用reverse()。