Я использую bxslider для создания карусели изображений. Однако дело в том, что изображения, которые он получает для отображения, имеют несколько непредсказуемый размер. Размер контейнера 243x243. И мы знаем, что ни одно изображение не будет иметь сторону меньше 243. Итак... Я хотел бы центрировать изображение в контейнере. И либо увеличивайте масштаб, пока более короткое из двух измерений (L vs W) не заполнит контейнер в 243, а переполнение более длинного измерения будет скрыто.
Для изображений, с которыми я работаю, это идеально подходит для получения важных деталей изображения в кадре.
Но у меня беда...
Я пробовал следующее, чтобы центрировать изображение в кадре:
jQuery(".bx-container").each(function() {
var img_w = jQuery(this).children("img").width();
var img_h = jQuery(this).children("img").height();
var pos_top = (img_h - containerHeight) / 2;
var pos_left = (img_w - containerWidth) / 2;
var pos_top = (243 - img_h) / 2;
var pos_left = (243 - img_w) / 2;
jQuery(this).children("img").css({
'top' : pos_top + 'px',
'left' : pos_left + 'px'
});
});
И я пробовал это, чтобы разместить не квадратные изображения в кадре:
jQuery(".bx-container").each(function(){
var refRatio = 1;
var imgH = jQuery(this).children("img").height();
var imgW = jQuery(this).children("img").width();
if ( (imgW/imgH) < refRatio ) {
jQuery(this).addClass("bx-portrait");
} else {
jQuery(this).addClass("bx-landscape");
}
});
});
Я перепутал оба скрипта и css, но я просто не могу заставить его работать. Он либо центрируется, но не изменяет размер правильно. Или изменяет размеры, но центрирует неправильно. Или оба ошибаются.
Вот jsfiddle: http://jsfiddle.net/vgJ9X/298/
Может ли кто-нибудь помочь мне?
Спасибо!
РЕДАКТИРОВАТЬ:
Новый jsfiddle... портретные работают правильно. Пейзажные изображения по-прежнему хлюпают. :(
http://jsfiddle.net/vgJ9X/307/
РЕДАКТИРОВАТЬ: Я ДУМАЮ, что это как-то связано с относительно расположенными элементами, которые не могут перекрываться. Пытаюсь найти исправление. Если кто-нибудь знает, отредактируйте последнюю опубликованную мной скрипку.