项目jQuery的图像调整大小

Posted

技术标签:

【中文标题】项目jQuery的图像调整大小【英文标题】:Image resize of items jQuery 【发布时间】:2013-02-07 01:42:22 【问题描述】:

我已经设法自动适应每行画廊的图像,具体取决于它是水平的(每行一个图像)还是垂直的(每行两个图像)。

现在的问题是我希望图像可缩放(在窗口调整大小时调整大小),但我不知道如何实现它。我该怎么做?

这是我的代码:

var gallery = new Gallery($('#gallery_images_inner'));

function Gallery(selector)

this.add_module = function(type, image)
    var container = $('<div />' , 
        'class' : 'gallery_container'
    ).append(image);
    if(type == 'horizontal')
        var h_ar = image.attr('height') / image.attr('width');
        container.css(
            'width' : selector.width(),
            'height' : selector.width()*h_ar
        )
    
    if(type == 'vertical')
        container.css(
            'width' : v_width,
            'height' : v_height
        )
    
    container.appendTo(selector);
    container.children('img').fitToBox();

var _this = this;
var gutter = 0;
// start vars for counting on vertical images
var v_counter = 0;
var w_pxls = 0;
var h_pxls = 0;
// iterates through images looking for verticals
selector.children('img').each(function()
    if($(this).attr('width') < $(this).attr('height'))
        v_counter++;
        h_pxls += $(this).attr('height');
        w_pxls += $(this).attr('width');
    
)
// calculates average ar for vertical images (anything outside from aspect ratio will be croped)
var h_avrg = Math.floor(h_pxls/v_counter);
var w_avrg = Math.floor(w_pxls/v_counter);
var v_ar = h_avrg/w_avrg;
var v_width = (selector.width())/2;
var v_height = v_width*v_ar;
selector.children('img').each(function()
    if(parseInt($(this).attr('width')) > parseInt($(this).attr('height')))
        _this.add_module('horizontal', $(this));
    else
        _this.add_module('vertical', $(this));
    
)
selector.isotope(
    masonry: 
        columnWidth: selector.width() / 2
    
);

【问题讨论】:

另一种选择是砌体,它非常适合重新定位元素以适应其空间...masonry.desandro.com 项目定位良好,这不是问题,问题是我想在窗口调整大小时调整图像的宽度和高度,无论如何,谢谢! 不用担心 - 这是一个非常棒的图书馆,总是值得一提 :) (不,它不是我的 :p) 你能搞定它吗?我想我知道在这里做什么.. 【参考方案1】:

对包含图像的容器使用百分比(对于它的宽度和高度).. 然后也对图像的宽度和高度使用百分比(它不必是 100%,它必须是相对于其容器的百分比)

【讨论】:

【参考方案2】:

这最好用 CSS 来解决。只需将 img 宽度设置为 100%,它就会随着其父级的大小扩展合同。在下面的示例中,.container 占据了 25% 的窗口,而 img 占据了 100%。你可以用firebug来改变容器的宽度,看看有什么区别。

<DOCTYPE html>
<html>
<head>
    <style>
        .container 
            width: 25%;
        
        .container img 
            width: 100%;
        
    </style>
</head>
<body>

    <div class="container">
        <img src="http://ldlocal.web44.net/test2/img/gallery0.jpg">
    </div>

</body>
</html>

【讨论】:

以上是关于项目jQuery的图像调整大小的主要内容,如果未能解决你的问题,请参考以下文章

jQuery动态比例元素/图像调整大小

jQuery 调整大小(拖放)和裁剪

jQuery图像调整大小 - 宽度不适合

Jquery调整图像大小

使用css和jquery调整图像大小后获取图像高度?

Jquery 使克隆图像可拖动和调整大小