Я создаю галерею изображений с изображениями переменной высоты внутри блока фиксированной высоты и ширины. Высота моего родительского div составляет 460 пикселей. Я хочу, чтобы все изображения высотой менее 460 пикселей были выровнены по вертикали в центре div.
Вот мой код js:
$(document).ready(function(){
var elemst = document.getElementsByName("pictureDiv");
var img = $('.x-simple img');
var parentdiv = $('.x-simple');
for (var i=0;i<elemst.length;i++)
{
var ph = parentdiv.height();
var h = img.height();
console.log('img height' + h);
var mh = Math.ceil((ph - h) / 2);
if(mh>0){
$('.x-simple img').css('margin-top', mh);
}
else
{
$('.x-simple img').css('margin-top', 0);
}
}
});
Мой HTML:
<div class="col-md-12">
<div class="col-md-3 col-xs-12 marg-bottom main-img-wrap">
<div class="xoverlay x-simple" name="pictureDiv">
<a href="#" target="_blank">
<img class="x-img-main" src="pic1.jpg">
</a>
</div>
</div>
<div class="col-md-3 col-xs-12 marg-bottom main-img-wrap">
<div class="xoverlay x-simple" name="pictureDiv">
<a href="#" target="_blank">
<img class="x-img-main" src="pic2.jpg">
</a>
</div>
</div>
<div class="col-md-3 col-xs-12 marg-bottom main-img-wrap">
<div class="xoverlay x-simple" name="pictureDiv">
<a href="#" target="_blank">
<img class="x-img-main" src="pic3.jpg">
</a>
</div>
</div>
<div class="col-md-3 col-xs-12 marg-bottom main-img-wrap">
<div class="xoverlay x-simple" name="pictureDiv">
<a href="#" target="_blank">
<img class="x-img-main" src="pic4.jpg">
</a>
</div>
</div>
The problem with my code is its giving me only one constant height of 473px if I do a console.log('img height' + h); which is the height of my first image. Also I can see "margin-top:0px" getting added in all my pictures irrespective of their different heights. Images with smaller heights also gets "margin-top:0px" added to it although it should not happen. Not sure where am I making mistake in my code.