创建响应式照片网格,保持纵横比?

时间:2012-11-11 17:46:11

标签: jquery html css

我有一组用泥工排列的图像。我希望图像能够调整大小,但我希望它们保持相同的顺序。基本上,我希望整个网格保持相同的宽高比。我已经尝试了流畅的Masonry布局选项,它使图像跳到了整个地方。如果我设置容器div以保持纵横比,则图像只会在浏览器调整大小时跳到容器下方。无论如何用CSS做到这一点?

1 个答案:

答案 0 :(得分:0)

可以使用此jQuery函数维护宽高比:

jQuery.fn.fitToParent = function()
{
    this.each(function()
    {
        var width  = $(this).width();
        var height = $(this).height();
        var parentWidth  = $(this).parent().width();
        var parentHeight = $(this).parent().height();

        if(width/parentWidth < height/parentHeight)
        {
            newWidth  = parentWidth;
            newHeight = newWidth/width*height;
        }
        else
        {
            newHeight = parentHeight;
            newWidth  = newHeight/height*width;
        }
        margin_top  = (parentHeight - newHeight) / 2;
        margin_left = (parentWidth  - newWidth ) / 2;

        $(this).css({'margin-top' :margin_top  + 'px',
                     'margin-left':margin_left + 'px',
                     'height'     :newHeight   + 'px',
                     'width'      :newWidth    + 'px'});
    });
};