我正在使用 Oliver Boermans 的 jQuery 插件将图像放入具有 100% 宽度和高度的容器中(因此,本质上是视口);http://www.olicle.com/eg/jquery/imagefit/
插件的核心是这个;
$(img)
.width('100%').each(function()
{
$(this).height(Math.round(
$(this).attr('startheight')*(dim.outerWidth/$(this).attr('startwidth')))
);
})
.css({marginTop: Math.round( ($(window).height() - $(img).height()) / 2 )});
startwidth
和startheight
属性包含图像的实际像素尺寸。
现在,当图像比视口宽时,这绝对完美。但是,我发现当视口垂直短于图像时,它不会将图像垂直适应视口。
我如何修改这个插件以考虑除了水平之外的垂直拟合,以便无论视口的尺寸和纵横比如何,图像的每一英寸总是完全显示?
我准备了一把小提琴来玩;http://jsfiddle.net/NXJCd/ - 调整 Result 分区的大小以查看插件的运行情况。如果将高度设置为比拟合图像短,则图像的顶部和底部边缘会被剪切。
编辑:所以经过一番困惑,我想澄清一下;我想按比例将图像放入容器内。所有图像都需要始终可见,但不能大于其原始尺寸。我在下面形象化了它。我为此使用的 jQuery 插件适用于水平拟合(示例 A 和 C),但它不适合垂直拟合(示例 B)。这就是我要解决的问题。
EDIT2:经过进一步的混淆,我什至制作了一个动画,详细说明了我希望它的行为方式;http://www.swfme.com/view/1064342