|
В IE не извлекаются размеры скрытой картинки
Доброго времени суток.
Как можно извлечь в IE размеры скрытой картинки? Например есть картинка <img class="picimg" src="'image/test.jpeg" style="display:none;" /> надо узнать её размер и исходя из этого, отцентрировать относительно размера экрана, извлекал так: var height = $(".picimg").attr("height"); var width = $(".picimg").attr("width"); во всех нормально, кроме IE, в нем размеры по нулям. |
|
Цитата:
|
>Это приемлемо, если общий код не тяжёлый - тогда юзер ничего не заметит.
Это неприемлемо никогда, ибо вызывает 2 лишних и бессмысленных перерисовки. Обычно картинку просто уводят далеко за левый верхний угол, с помощью position: absolute. Кстати большинство ситуаций, когда на ум приходит необходимость учитывать заранее неизвестный размер картинки, решается с помощью css без этого. |
а так тоже размеры не определены?
$(".picimg").width(); $(".picimg").height(); |
Я с данной проблемой боролся по всякому. Могу добавить еще, что размеры не будут выданы, пока картинка в принципе не загрузится. При отображении в одном месте последовательно нескольких картинок (что-то типа слайд-шоу) при больших размерах картинок, при медленном интернете возникают всякие неприятности. Если на время загрузки прятать картинку ("далеко за левый верхний угол"), то некоторое время пользователь не видит ничего - раздражает. Если не прятать, то пока грузится новая картинка - её размеры искажаются размерами от предыдущей картинки.
Чтобы побороть всё это я нашел пока один путь: сервер должен знать размеры картинки (хранить в базе данных) и при отсылке клиенту src новой картинки одновременно сообщать ее размеры. Тогда проблема нулевых размеров отпадает. |
Цитата:
var img = new Image(); img.onload = function() { alert( [ "width: " + this.width, "height: " + this.height ] ); } img.src = "http://javascript.ru/forum/images/smilies/smile.gif"; |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 18:47. |
|