我使用下面的函数,当我调整我的浏览器窗口来调整我的图片与固定高度调节图像的大小:根据浏览器窗口大小
function resize_image(a){
$(a).on("load",function(){
var b;
var d=$(this).width()/$(this).height();
var c=$(this).parent().width()/$(this).parent().height();
if(d<c){
b={width:"auto",height:"100%"}
}else{
b={width:"100%",height:"auto"}
}
$(this).css(b)
})
};
这功能,如果你不只是工作元素上有任何固定的高度或宽度。我想在DIV标签中显示图像,这样我就可以得到一个表明图像正在加载的背景颜色/图像,而不是一个不可见的图像(就像现在这样)。
为什么我想要一个与图像高度相同的手动高度,是因为我在图像下有一些内容。当网站加载图片时,内容位于网站顶部(top = 0)。图像加载完成后,内容会弹出,以便在图像下方显示。我想要防止这种情况,因为图像可能会因网络托管而加载有点慢,当内容可见时看起来有点奇怪,但不是图像。
现在我的问题。是否可以使用此功能在DIV标记中设置手动高度,并根据浏览器的窗口大小正确调整图像大小?
非常感谢!但我不明白我能如何解决您的解决方案中的一件事。你写道:“例如,16:9的图像宽度为100%,100%的9/16为56.25%。”我有图像的纵横比,但是如何用纯PHP计算出100%的纵横比的百分比?我试过这个:'list($ first,$ second)= explode(':',$ aspect); echo(100 - $ second/$ first)。'%';'但只打印'99.333333333333%',纵横比为3:2 – Erik
高度除以宽度,乘以100会给出高度的百分比。所以你会想要'$ second/$ first * 100'。 –
谢谢:)解决了这个问题,但在调整浏览器窗口大小时,图像不会调整大小。使用您的解决方案,图像被固定为1280x853的全宽和高度。我有你的jsFiddle和这里的确切代码。 – Erik