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

在显示前预加载多个图像

  •  0
  • Vald  · 技术社区  · 7 年前

    我有这个密码

    var html = '';
    data.forEach(function (item, index) {
       html += '<img src="' + item.src + '">';
    }
    $('.container').append(html);
    

    如何等到图像预加载后再显示?

    我看到了这样的东西:

    var img=new Image();
    img.src=url;
    

    但是,如何知道图像何时完成预加载以调用append()函数?

    1 回复  |  直到 7 年前
        1
  •  0
  •   andre mcgruder    7 年前

    两个示例的区别在于,一个示例通过图像API创建图像,另一个示例通过字符串连接创建图像。

    反“如何等到所有图像都加载”是设置一个条件来测试它们是否都已创建。

    var html = '';
    data.forEach(function (item, index) {
       if( data[index] !== -1){
           html += '<img src="' + item.src + '">';
       } else {
           $('.container').append(html);
       }
    }