- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个 jQuery 解决方案,我想从 Flickr RSS 源加载图像。不过,我对从提要中获得的默认大小并不满意 - 我希望加载的图像等于或高于我在其中显示它们的包装元素的高度。(宽度在这里不是问题。)
根据他们的API documentation ,Flickr 有一个图像尺寸系统,如下所示:
s small square 75x75
t thumbnail, 100 on longest side
m small, 240 on longest side
- medium, 500 on longest side
z medium 640, 640 on longest side
b large, 1024 on longest side*
o original image, either a jpg, gif or png, depending on source format
* Before May 25th 2010 large photos only exist for very large original images
这意味着没有保证的高度 - 我需要检查要加载的每个图像的高度。举个例子:如果图像是全景图并且我加载了大尺寸,则高度可能仍然不足以填充我的包装元素。这是因为最长的边将是宽度,它将是 1024。
让事情变得复杂的是,包装器的高度可能会发生变化 - 不是在页面加载后动态变化,而是在页面之间变化。在某些页面上它是 300 像素,在其他页面上它是 100 像素等等。
据我所知,获取图像文件高度的唯一方法是实际加载它。因此,我编写了一些加载图像的递归代码,查看其高度,如果不够,它会再次调用自身来加载下一个尺寸。在当前版本中,它从最小尺寸开始,一直向上直到找到合适的图像或可能的最大图像。
代码如下:
$.getJSON(ajaxContentURL, function(data) {
var flickrImages = [];
// An array of object with data pertaining Flickr's image sizes
var flickrImageSizes = [{ size: "small square", pixels: 75, letter: "_s" },
{ size: "thumbnail", pixels: 100, letter: "_t" },
{ size: "small", pixels: 240, letter: "_m" },
{ size: "medium", pixels: 500, letter: "" },
{ size: "medium 640", pixels: 640, letter: "_z" },
{ size: "large", pixels: 1024, letter: "_b"}];
$.each(data.items, function(index, item) {
flickrImages.push(loadFlickrImage(item, 0));
});
function loadFlickrImage(item, sizeIndex) {
var path = item.media.m;
var imgSrc = path.replace("_m", flickrImageSizes[sizeIndex].letter);
var tempImg = $("<img />").attr("src", imgSrc);
tempImg.load(function() {
// Is it still smaller? Load next size
if (this.height < el.data("scrollableAreaHeight")) {
// Load a bigger image, if possible
if ((sizeIndex + 1) < flickrImageSizes.length) {
loadFlickrImage(item, sizeIndex + 1);
} else {
return this;
}
else {
return this;
}
});
}
});
虽然边缘有点粗糙,但我希望你能明白。
这可行,但为了获得正确的尺寸而必须加载如此多版本的图像似乎太浪费了?
您有任何改进建议吗?我认为应该首先对最佳尺寸进行合理的猜测并首先加载它。然后它会查看它是否适合,或者是否太小或太大,并按尺寸比例加载下一个或上一个图像。这样您就可以减少加载的图像数量以获得正确的尺寸。
更好的是:有没有一种方法可以在不加载实际图像文件的情况下找出图像大小?请记住,我无法访问完整的 Flickr API - 我只是访问 JSON 源 like this one .
如有任何反馈,我将不胜感激!
提前致谢!
最佳答案
也许我对问题的理解是错误的,但也许在html中设置高度,然后通过jquery调整大小到最大的最佳尺寸?加载所有图像中最大的实际尺寸会很浪费,但这比多次加载图像要好。
对于html设置,只要记住尽可能小的图像即可防止空白填充。当然,设置一个维度将允许另一个维度自行设置。如果裁剪是一个问题,一个技巧是设置包装器和溢出的大小:隐藏。
对于 jquery 调整大小,鉴于图像不会立即加载,观看者很可能会看到图像大小发生变化,这并不理想。除非你将它们隐藏起来,直到加载、调整大小,然后显示。
关于jquery - 使用 jQuery 从 Flickr 获取图像的高度而不加载图像文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401291/
有没有办法从具有自定义宽度/高度的 flickr api 获取图像?我发现只有标准功能 flickr.photos.getSizes ,但此函数仅返回预定义的大小。谢谢 最佳答案 据我所知,不可能让
我想从 flickr 上的相册中获取照片。我有 4 张专辑。目前我正在做返回所有照片的 flickr.people.getPublicPhotos 方法。这是我的网址 https://api.flic
通读 Flickr API 文档,它一直说我需要一个 API key 才能使用他们的 REST 协议(protocol)。我只是在构建一个照片查看器,从 Flickr 的 public photo f
是否有一种简单的方法可以使用 Flickr API 而不是编辑界面按时间倒序对照片集进行排序(即“按拍摄日期排列(最新的优先)”? 最佳答案 您可以在调用getPhotos 时获取date_taken
我们需要用户能够在我们的媒体部分输入 URL。然而,由于用户在输入 URL 时可能会出错,我们需要确保这些 URL 是有效的 flickr URL。有效网址例如: http://www.flickr.
编辑:我增加了赏金,如果有人能帮我弄清楚我做错了什么,那就全靠你了。 此外,我真的不在乎这是如何完成的。如果有图书馆可以提供帮助,或者类似的东西,那就太好了。 由于不涉及验证码,理论上我应该能够登录
我正在尝试将我的应用程序连接到 Flickr,但在身份验证过程中遇到问题。 我已按照以下说明进行操作: https://github.com/devedup/FlickrKit 我已经为我的应用程序创
我正在尝试在 iOS 7 中使用 UIActivityViewController Flickr 共享,但 Flickr 图标没有出现在共享表中。我觉得我缺少一些基本的东西。 我正在 iPhone 5
我使用它通过 Flickr API 获取所有相册列表 - flickr.photosets.getList 我需要获取特定相册中所有照片的静态 URL。谁能建议怎么做? 最佳答案 如果您只想获取原始图
菜鸟问题系列... 我是 python 的新手,最近想创建一个小的 python 应用程序,可以根据不同的搜索输入从 flickr 收集照片。 (例如:如果我输入“dog”,它会从 flickr 下载
我想使用rest(jquery ajax - 因为这就是我使用的)在页面上显示 flickr.test.echo 的响应 我需要提供 api_key REST 端点 URL 为 http://api.
我遇到了 flickr API 的一个令人困惑的问题。 当我进行照片搜索 (flickr.photos.search) 并请求高页码时,我 通常会为不同的页码返回重复的照片。 这是三个 URL,它们每
是否可以通过 flickr api 或其他一些服务获取在用户所在位置拍摄的 CC 图像? 就像从浏览器获取经纬度并将其发送到 flickr 然后获取在那里拍摄的图像一样?类似于 iOS 上的雅虎应用程
我正在做一个项目,在这个项目中我在 flickr 上创建了一个应用程序。我的帐户是免费帐户。使用该应用程序。许多用户连接到我的应用程序,我将他们的 access_token 存储在我的数据库中。使用该
是否可以通过api调用或某些脚本从flickr URL获取静态图像URL? 例如: Flickr URL-> http://www.flickr.com/photos/53067560@N00/265
最近,我浏览我的 Flickr 帐户及其统计数据,注意到它们显示了一个非常漂亮的图表。给我留下深刻印象的是它是用 HTML 渲染的,并使用 JavaScript 实现鼠标悬停效果。有谁知道他们是否使用
确定用户是否登录 Flickr 的正确方法是什么?我的应用程序中有一个 iframe,它允许用户从 Flickr 下载他们的图像。但是如果用户没有登录到 flickr,那么 flickr 会将我从 i
我想先说一下,我是 JS 的初学者,现在才使用它几天。 这是我正在处理的内容http://jsfiddle.net/joyroyxw/ 我想要做的是获取一个人的名字并显示他们名字中每个字母的图像。到目
是否有任何 python flickr api,我可以在其中点击组 url 并获取所有最新的图像数据? 我有一个像这样的网址: https://www.flickr.com/groups/caterp
我正在获取 flickr 代码以在我的 html 页面中显示照片流: #flickr_badge_source_txt {padding:0; font: 11px Arial, Helvetic
我是一名优秀的程序员,十分优秀!