代码之家  ›  专栏  ›  技术社区  ›  Steven

加载图像时删除背景图像

  •  1
  • Steven  · 技术社区  · 15 年前

    我正在通过Ajax加载图像标签,并用传统的 .html(content) jquery中的函数和一堆其他的HTML一起使用。但是,如果从头开始加载页面,这个问题仍然适用。现在,我有一个背景图像占位符要在加载图像时放在那里。我想让这个背景图像在加载图像时消失。

    问题:

    如果我附加一个传统 .load(function) 事件侦听器,我担心在应用钩子之前可能会加载图像(将钩子放入一个小的JS中) <script> 在图像之后而不是在 $(function(){}) 阻塞可能会有点帮助)。我还没有遇到这样的行为,但是我不知道规范中有什么可以阻止这种情况的发生(因为在应用钩子之前应该完全解析图像标记)。

    我当前的解决方案。将命令放在内联中 onload= 属性。

    有更好的方法吗?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Community Mohan Dere    8 年前

    直到大约一周前,我也会迷路的。谢天谢地 this answer to another question 将帮助您:

    基本上把这个放进去 $() :

    $(function(){ 
       var img = $("#idofimage").load(function () { 
          /* your magic to swap out placeholder */ 
       });
    
       if (img[0].complete) {
         // Trigger the load handler if the image
         // is already loaded
         img.trigger('load');
       }
    
    });
    
        2
  •  0
  •   gblazex    15 年前

    你不需要jquery来完成这个任务,你可以用css来完成。

    .my-img-loader-class { background:url('placeholder-or-progress'); }
    

    或者如果不想更改HTML:

    #container img { background:url('placeholder-or-progress'); }
    

    在图像加载到特定分区时显示占位符。

    它的工作方式是图像元素将占位符图像显示为其背景,并且当SRC加载时,它将显示在占位符上方,以便很好地替换它。