【问题标题】:how to load images after everything else is loaded?加载完其他所有内容后如何加载图像?
【发布时间】:2026-01-19 02:40:02
【问题描述】:

我有一些想法,即在原始图像完成加载之前在 div 上加载假图像,并且在 winodws 加载之后加载。我得到了一些代码,但无法理解我必须将假图像和原始图像的 src 图像放在哪个部分image.do 在这段代码中帮助我。 我的 html 部分是

<div class="myimage"><img src="myimage.jpg" /></div>

注意:技巧是仅在该源加载到临时img. $(img).load(fn); 处理时才设置 src 属性。

$(function(){
        $.each(document.images, function(){
                   var this_image = this;
                   var src = $(this_image).attr('src') || '' ;
                   if(!src.length > 0){
                       //this_image.src = options.loading; // show loading........
                       var lsrc = $(this_image).attr('lsrc') || '' ;
                       if(lsrc.length > 0){
                           var img = new Image();
                           img.src = lsrc;
                           $(img).load(function() {
                               this_image.src = this.src;
                           });
                       }
                   }
               });
      });

【问题讨论】:

标签: javascript jquery html image css


【解决方案1】:

您可以将您的图片网址添加到自定义 data-url 属性,并使您的图片网址为 base64 1x1 gif。然后当页面完全加载时,您可以从中获取您的网址。基本上会是这样的。

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="original-image.png" />

$(window).load(function() {

   $("img").each(function() {
     $(this).attr("src", $(this).attr("data-src"));
   });
});

【讨论】:

  • 它除了loading.gif之外没有显示原始图像虽然src替换为data-src但加载图像仍然保持@UmurAlpay
【解决方案2】:

您可以使用data 属性来做到这一点:

<div class="myimage"><img data-orig="original.jpg" src="fake.jpg" /></div>

$(window).load(function(){
  $('.myimage img').attr("src", $(this).data('orig')).removeAttr('data-orig');
});

【讨论】:

  • 感谢您的评论,您能否为我重新编写代码以及包含 original.jpg 和 fake.jpg 的 html。您能否改写代码。 @Afshin Haghighat
  • 它不显示原始图像除了 loading.gif 虽然 src 替换为 data-src 但加载图像仍然保持@Afshin Haghighat