- 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/
我有下面的图表,它填充了显示器的宽度和高度。高度始终只比屏幕大一点,因此会出现滚动条以显示底部 20 像素左右。 有没有办法让 Kendo UI 显示 100%,而不是 105% 的高度? 在线示例:
这个问题在这里已经有了答案: Why doesn't height: 100% work to expand divs to the screen height? (12 个答案) 关闭 9 年前
此页面 ( http://purcraft.com/madeinla/) 有问题,我正在尝试使用 iframe 元素显示此页面的内容:( http://purcraft.com/madeinla/ho
我在一个父 div 中有 2 个子 div。 Child1 是标题,Child2 是正文。我希望将 Child 2 的高度设置为 Parent - Child1 的高度。 Child2 有内容,所以它
我正在尝试用图像填充窗口。我正在使用 CSS 来尝试解决这个问题,但我想知道是否有一种方法可以最大化图像的宽度/高度,直到所有空白区域都被填满,但又不会破坏质量。 .rel-img-co
这个问题在这里已经有了答案: How to make a div 100% height of the browser window (41 个回答) 关闭 8 年前。
这可能是一个新手问题,但是是否可以将 Sprite 图标添加到带有文本的标签中? 例如: labeltext .icon { width: 30px height: 30px;
我有 3 个 div,分别是 header、content 和 footer。页眉和页脚具有固定的高度,并且它们被设计为 float 在顶部和底部。我想要使用 jquery 自动计算中间的 con
我有一个外部 div,其指定的宽度/高度(以毫米为单位)。 (mm只是赋值,不用于渲染)。 里面有另一个 div,其实际宽度/高度(以 px 为单位)。 两个 div 可以具有不同的比例。 我想要做的
我正在为一个非常简单的画廊 webapp 进行布局排序,但是当我使用 HTML5 文档类型声明时,我的一些 div(100%)的高度会立即缩小,我不能似乎使用 CSS 将它们丰满起来。 我的 HTML
我正在为一个非常简单的画廊 webapp 进行布局排序,但是当我使用 HTML5 文档类型声明时,我的一些 div(100%)的高度会立即缩小,我不能似乎使用 CSS 将它们丰满起来。 我的 HTML
我想更改 UISearchBar。文本字段的高度和宽度。我的问题是如何更改 iphone 中 UISearchBar 中的 UiSearchbar 高度、宽度、颜色 和 Uitextfield 高度?
我想要两个宽度和高度均为 100% 的 div。我知道子 div 不会工作,因为父 div 没有特定的高度,但有没有办法解决这个问题? HTML: CSS: body
我有几个带有“priceText”类的 div,我试图实现如果 div.priceText 高度小于 100px,则隐藏 this div 中的图像。 我无法让它工作。我已成功隐藏所有 .priceT
我正在尝试从 Image 列中列出的图像中获取实际图像尺寸,并将其显示在 Image Size 列中。 我遇到的问题是,我只能获取第一张图片的大小,该图片会添加到 Image Size 列的每个单元格
我正在使用一个插件,它要求我在加载图像后获取图像的宽度和高度,而不管图像的尺寸是如何确定的。
我有一个示例 pdf(已附),它包括一个文本对象和一个高度几乎相同的矩形对象。然后我使用 itextrup 检查了 pdf 的内容,如下所示: 1 1 1 RG 1 1 1 rg 0.12 0 0 0
我是 WPF 新手。我试图解决的一个问题是如何在运行时获得正确的高度。 在我的应用程序中,我将用户控件动态添加到代码隐藏中的 Stackpanel。 Usercontrol 包含一些 Texblock
在自定义 WPF 控件中,我想将控件的宽度设置为高度的函数。例如:Width = Height/3 * x; 实现此目的的最佳方法是什么,以便控件正确且流畅地调整大小(和初始大小)? 最佳答案 您可以
好吧,我本以为这是一个简单的问题,但显然它让我感到困惑。 当我尝试设置 RibbonComboBox 的高度时,它不会移动它的实际大小,而是移动它周围的框。 这是我的 XAML:
我是一名优秀的程序员,十分优秀!