2016-01-08 4 views
0

Интересно, есть ли способ сделать это, потому что когда я запускаю тест, fadeIn не работает. Похоже, что он активируется сразу же, когда изображение тега находится в документе, но только когда это изображение будет загружено полностью!Загрузить изображение с помощью jQuery fadeIn после завершения загрузки

$(document).ready(function(){ 
 
    $('a[name=view]').click(function(e){ 
 
     e.preventDefault(); 
 
     $('#load').show(); 
 
     $('#img').append('<img src="media/1.jpg" id="loaded" width="600"/>'); 
 
     $('#loaded').load(function(){ 
 
      $('#load').delay(1000).fadeOut(); 
 
      $('#img').delay(1000).fadeIn(); 
 
     }); 
 
    }); 
 
});

В этом случае FadeIn работает только тогда, когда изображение загружается менее чем за 1 сек. Я хочу, чтобы этот эффект работал на изображении 4 мб, например, так, без задержки, но еще один вариант.

Thank u all !! К сожалению мой английский: 3

+0

ли эта помощь ?: [Jquery обратного вызова изображения] (http://stackoverflow.com/questions/3877027/jquery-callback-on-image -load-even-when-the-image-is-cache) – Yass

ответ

0

Попробуйте это:

$('a[name=view]').on('click', function(e){ 
    e.preventDefault(); 
    $('#load').show(); //some ajax spinner or "loading" text 
    $('#img').append('<img src="media/1.jpg" id="loaded-img" width="600" style="display:none;"/>'); //append your image to #img element (div or something) 
    $("#loaded-img").one("load", function() { 
     $('#load').fadeOut(300); //remove ajax spinner or "loading" text 
     $(this).fadeIn(300); //show image 
    }).each(function() { 
     if(this.complete) $(this).load(); 
    }); 
}); 
+0

Пожалуйста, добавьте объяснения в свой ответ. –

+0

Поблагодарите u для aswering. Та же проблема. Я запускаю изображение 6 мб для тестов. Я знаю, что это безупречное совершенство, но это пришло мне в голову и еще хуже, похоже, что-то очень простое или глупое! – Klethonio

Смежные вопросы