Я ценю, что вопрос был задан некоторое время назад, но я пытался решить ту же проблему, и в случае, если кто-то еще сталкивался с этим, вот как я решил это.
Я использовал window.setTimeout () с задержкой в 200 мс, который вызвал мой эффект предварительного загрузчика, и в событии .load () для загружаемого изображения первое, что он делает - очищает тайм-аут, поэтому, если загрузка была быстрой - эффект не отображается, но если загрузка изображения занимает более 200 мс, отображается предварительный загрузчик:
var imgTmr;
imgTmr = window.setTimeout(function() {showLoading('zoomImage');}, 200);
$("#zoomImage").load(function() {
window.clearTimeout(imgTmr);
hideLoading();
}
$("#zoomImage").attr("src", "myLargeImage.jpg");
// The showLoading() and hideLoading() functions just display a wait graphic
// the image being loaded in this instance has the id of zoomImage