Проблема в том, что jQuery, по сути, меняет src на изображении, и нет простого способа выполнить задачу, как у вас выше (если вы хотите, чтобы изображение было loading
, вам нужно пусть это будет src
тега img
, но, следовательно, src
также не может быть loading.gif
). Однако вы можете сделать это с помощью небольшого JavaScript и CSS:
$('#imageid').attr('src', path).addClass('loading').load(function() { $(this).removeClass('loading'); })
Затем просто добавьте стиль CSS, чтобы поместить изображение загрузки поверх элемента изображения, когда к нему прикреплен класс loading
.
img.loading {
background: url("/loading.gif") no-repeat center center transparent;
}
Это должно обеспечить плавную загрузку вашего изображения. Стоит отметить, что вы также можете сделать это, используя два тега img
и поменять местами тот, который виден. Также будьте осторожны с обработчиком load
, поскольку кэшированные изображения будут загружаться мгновенно в определенных браузерах. Наслаждайтесь!