как избежать "скачка" изображений при загрузке изображения через JavaScript - PullRequest
0 голосов
/ 17 сентября 2011

У меня есть несколько изображений, которые выстроены вместе относительно CSS и т. Д.

У меня есть этот код в функции JavaScript после изменения выпадающего списка:

$("#imagePlaceholder").html("<img src='/Content/Images/image1.png' />");

Проблема заключается в том, что во время загрузки изображения остальные изображения немного «подпрыгивают» и перемещаются, а затем перемещаются назад после загрузки изображения на клиент.

Так это выглядитхорошо, как только изображение было загружено, но я хочу найти способ избежать этого "рывка" во время перехода.

Есть ли стандартный способ или наилучшая практика для этого?

Ответы [ 4 ]

5 голосов
/ 17 сентября 2011

Вам необходимо установить ширину и высоту img. Браузер пытается компенсировать изображение (отсюда и «резкость»), но он не может сделать это плавно, не зная, сколько места понадобится изображению.

2 голосов
/ 17 сентября 2011

Или загрузите изображения в объект изображения javascript и не вставляйте их на страницу, пока они не будут загружены.Это может работать лучше, если вы заранее не знаете размер изображений.

var img = new Image();
img.onload = function () {
    // after it's loaded successfully here, 
    // you can insert it into the DOM with no jerkiness
}
img.src = "xxx";
0 голосов
/ 17 сентября 2011

попробуйте установить только атрибут src для элемента изображения, как отмечено.если он пересчитывает старые свойства изображения, возможно, он сначала не очистит их.

0 голосов
/ 17 сентября 2011

Вам необходимо установить высоту и ширину $("#imagePlaceholder") перед любой динамической загрузкой. Кроме того, вам лучше иметь img, иметь id с чистым изображением (прозрачный 1x1 пиксель) и затем просто использовать: $("#imgId").attr("src","newimage.png");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...