Javascript jQuery中项目的图像大小调整

Javascript jQuery中项目的图像大小调整,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我已经成功地将画廊的每行图像自动匹配,这取决于它是水平的(每行一个图像)还是垂直的(每行两个图像) 现在的问题是,我希望图像是可伸缩的(在窗口调整大小时调整大小),但我不知道如何实现它。我该怎么做 这是我的代码: var gallery = new Gallery($('#gallery_images_inner')); function Gallery(selector){ this.add_module = function(type, image){ var container

我已经成功地将画廊的每行图像自动匹配,这取决于它是水平的(每行一个图像)还是垂直的(每行两个图像)

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

这是我的代码:

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
    }
});
var gallery=newgallery($(“#gallery_images_inner”);
功能库(选择器){
this.add_module=函数(类型、图像){
变量容器=$(''{
“类”:“库容器”
}).附加(图像);
如果(类型=‘水平’){
var h_ar=image.attr('height')/image.attr('width');
container.css({
“宽度”:选择器。宽度(),
“高度”:选择器.width()*h_ar
})
}
如果(类型==“垂直”){
container.css({
“宽度”:v_宽度,
“高度”:v_高度
})
}
container.appendTo(选择器);
container.children('img').fitToBox();
}
var_this=这个;
var=0;
//启动变量以在垂直图像上计数
var v_计数器=0;
var w_pxls=0;
var h_pxls=0;
//在图像中迭代查找垂直方向
selector.children('img').each(function(){
if($(this.attr('width')<$(this.attr('height')){
v_计数器++;
h_pxls+=$(this.attr('height');
w_pxls+=$(this.attr('width');
}
})
//计算垂直图像的平均ar(宽高比以外的任何内容都将被忽略)
var h_avrg=数学地板(h_pxls/v_计数器);
var w_avrg=数学地板(w_pxls/v_计数器);
var v_ar=h_avrg/w_avrg;
var v_width=(selector.width())/2;
var v_高度=v_宽度*v_ar;
selector.children('img').each(function(){
if(parseInt($(this.attr('width'))>parseInt($(this.attr('height'))){
_this.add_模块('horizontal',$(this));
}否则{
_this.add_模块('vertical',$(this));
}
})
同位素选择器({
砌体:{
columnWidth:selector.width()/2
}
});

}对包含图像的容器使用百分比(宽度和高度)。。然后还可以使用图像宽度和高度的百分比(它不必是100%,它只需要是相对于其容器的百分比)

这最好用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>

.集装箱{
宽度:25%;
}
.集装箱img{
宽度:100%;
}

另一种选择是砌石,它非常适合重新定位图元以适应其空间。。。项目的位置很好,这不是问题,问题是我想要一个宽度和高度调整的图像窗口调整大小,无论如何谢谢!不用担心——这是一个非常棒的图书馆,它总是值得一提:)(不,它不是我的:p)你能把它藏起来吗?我想我知道在这里该怎么办。。