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)你能把它藏起来吗?我想我知道在这里该怎么办。。