Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用flexbox在modal中保持图像纵横比?_Javascript_Jquery_Flexbox - Fatal编程技术网

Javascript 如何使用flexbox在modal中保持图像纵横比?

Javascript 如何使用flexbox在modal中保持图像纵横比?,javascript,jquery,flexbox,Javascript,Jquery,Flexbox,我有一个图像库在我的模式,这是使用flexbox风格。问题是,一些水平方向过大的图片会溢出,使flexbox拉伸,因此,即使flex权重在css中设置,旁边的项目也会被弄乱 <div class="slideshow-container"> <div class="mySlides fade" style="display: block;"> <div class="numbertext">1 / 16</div>

我有一个图像库在我的模式,这是使用flexbox风格。问题是,一些水平方向过大的图片会溢出,使flexbox拉伸,因此,即使flex权重在css中设置,旁边的项目也会被弄乱

<div class="slideshow-container">
    <div class="mySlides fade" style="display: block;">
         <div class="numbertext">1 / 16</div>
              <img src="./img/normal/image.jpg" class="galimg" style="height: 331px;">
         <div class="text">Image description</div>
    </div>
    ....
</div>
CSS:


我知道问题可能出在我的JS中的某个地方,因为我尝试记录宽度和高度,结果通常为0。html是通过JS动态生成的。我尝试添加一个onImgLoad函数,但没有得到任何结果

没有必要做js的事情。只要修复你的css。添加一些样式和HTML元素。以下是在许多网站中显示不同大小图像的最常见方式(请展开代码段以查看其行为)

#模态库{//这是库周围的div
弹性:6;
显示器:flex;
右边距:自动;
弯曲方向:立柱;
调整内容:灵活启动;
对齐项目:居中;
}
.slideshow容器{
显示器:flex;
位置:相对位置;
保证金:0;
}
迈斯利德斯先生{
显示:块
}
.幻灯片图像{
显示:内联块;
宽度:220px;
文本对齐:居中;
垂直对齐:顶部;
边缘底部:20px;
}
.img集装箱{
显示:块;
宽度:200px;
}
.img容器.img{
显示:表格单元格;
垂直对齐:中间对齐;
文本对齐:居中;
}
.img容器img{
最大高度:200px;
最大宽度:200px;
}

1/16
图像描述
1/16
图像描述
1/16
图像描述
1/16
图像描述
1/16
图像描述
1/16
图像描述
var maxHeight = $('#modal-gallery').height()-39; // need 39px for the gallery navigation. 
var maxWidth = $('#modal-gallery').width();
var ratio = maxHeight/maxWidth;
$('.galimg').each(function(i){  
    if ($(this).height()/$(this).width() > ratio){
        $(this).width(maxWidth);
    } else {
        $(this).height(maxHeight);
    }
});
#modal-gallery { // this is the div surrounding the gallery
    flex: 6;
    display: flex;
    margin-right: auto;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
}

.slideshow-container {
    display: flex;
    position: relative;
    margin: 0;
}