У меня есть простая сетка изображений размером 16x16 пикселей, и когда один щелкнут, я хочу отобразить полноразмерный размер с затуманенным фоном, а изображение в div, появляющемся, чтобы плавать над тусклым фоном.Отображение удаленного изображения через экран
Я не хочу, чтобы предварительно заполнить список полноразмерной
$('#photo-grid').on('click', 'a', function(event) {
$.getJSON($(this).attr('href'), function(data) { // Gets the URL of full-sized image
$('.page-cover').css('opacity', 0.6).fadeIn(300); // Makes background appear to fade
$('#lightbox-img').attr('src', data.url); // Sets image src in hidden DIV
$('#lightbox-img').one('load', function() {
var lbi;
lbi = $('#lightbox-img');
console.log("lbi: " + (lbi.width()) + " x " + (lbi.height())); // always 0
console.log("lbi: " + (lbi.width()) + " x " + (lbi.height())); // always 0
$('.image-display').css('width', parseInt(lbi.css('width')).toString() + "4px")
.css('padding-left', '2px');
$('.image-display').css('height', parseInt(lbi.css('height')).toString() + "4px")
.css('padding-top', '2px');
return $('.image-display').css('opacity', 1.0).fadeIn(300);
});
return $('#lightbox-img').each(function() {
console.log("triggering for cached image " + this.complete);
if (this.complete) {
return $(this).load();
}
});
});
return false;
});
Так вот, где я не в состоянии понять вещи. В точке, где я делаю lbi = $('#lightbox-img');
Я знаю, что изображение загрузилось либо с сервера, либо с локального кеша. Однако ни функции width()
, ни height()
, ни CSS никогда не показывают ширину или высоту изображения. Я прошел через это в отладчиках Chrome и Safari и не вижу, что эти атрибуты действительно установлены при загрузке изображения.
Я знаю, что есть тонны модальных плагинов, но это такой простой фрагмент кода, который кажется излишним, чтобы использовать его. У меня есть только одно изображение для отображения за клик, и я могу делать все макеты в нескольких строках кода.
Что мне здесь не хватает?
Случиться иметь живую скрипку или пример, который я, мы можем играть с? –
Кажется, что это не так просто, как вы думали. Зачем ставить себя через это? Зачем изобретать колесо? – Jeff