Я использую JQuery Cycle для создания слайд-шоу изображений. Плагин использует display: none, чтобы скрыть изображения, которые еще не показываются, причем первое изображение автоматически имеет display: block при загрузке страницы. У меня есть этот фрагмент кода JQuery для вертикального центрирования моих изображений внутри контейнера слайд-шоу, который работает ... для самого первого изображения.
(....inside a (document.ready(function()......)
$('.variable').load(function() {
var imgHt= $('.variable').height();
var half= imgHt/2;
$('.variable').css("top", "50%");
$('.variable').css("margin-top", "-" + half + "px");
});
Я пробовал этот код без .load (function ()), и он работает неправильно. Браузер отобразит top: 50% и margin-top: 0px или высоту: правильную половину высоты изображения, а не отображение сверху: 50%. странно.
Здесь я предполагаю, что JQuery не видит размеры изображения, когда его отображение не установлено. Есть ли обходной путь к этому?
Постскриптум Эти изображения генерируются из базы данных, поэтому нет, я не знаю высоту изображения заранее. Вот почему я в первую очередь использую JQuery.