javascript - 我想将图像加载到 "wave"..

标签 javascript arrays

<html>
<section>

<style>
img{
 width: 150px;
 height:150px;
 float:left;
 }
 </style>
 </section>


 <script>

 var img = undefined,
 section = document.querySelector('section'),
 images=[
 "http://www.psdgraphics.com/file/red-number-0.jpg",
 "http://www.psdgraphics.com/file/red-number-1.jpg",
 "http://www.psdgraphics.com/file/red-number-2.jpg",
 "http://www.psdgraphics.com/file/red-number-3.jpg",
 "http://www.psdgraphics.com/file/red-number-4.jpg",
 "http://www.psdgraphics.com/file/red-number-5.jpg",
 "http://www.psdgraphics.com/file/red-number-6.jpg"
  ];

  function loadImage( i ){
   img = document.createElement('img');
   section.appendChild(img);
   img.dataset['index'] = i;
   img.src=images[i];
 }
 for(var i=0;i<images.length;i++){

  loadImage(i)

  }

  </script>


  </html>

这是我的代码,目前我同时收到所有图像...... 我想仅在加载前一个图像后才加载每个图像..

任何帮助将不胜感激

最佳答案

只需将伪递归回调分配给 onload 处理程序:

function loadImage( i ){
  if(i >= images.length) return;
  var img = document.createElement('img');
  section.appendChild(img);
  img.dataset['index'] = i;
  img.src=images[i];
  img.onload = () => loadImage(i+1);
}

loadImage(0);

或者使用一些新的 ES 7 东西:

(async function(){

 for(var i = 0; i < images.length; i++){
  var img = document.createElement('img');
  section.appendChild(img);
  img.dataset['index'] = i;
  img.src=images[i];

  await new Promise(r => image.onload = r );
 }

 })()

关于javascript - 我想将图像加载到 "wave"..,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45719640/

相关文章:

javascript - 如果组件不是 Angular2 中的父子组件,如何在组件之间传递数据?

c++ - 尝试将字符串数组转换为 int 但在 C++ 中不起作用

Java 字节移位

java - 数组中的动态第二维

arrays - 使用索引数组并行写入数组

python - NumPy 数组中沿给定轴的一阶差分

javascript - React dropzone 图像未在模板上更新

javascript - 多次使用鼠标悬停事件不起作用?

javascript - 如何循环遍历 JSON 对象的属性?

javascript - 使所选图像与从javascript中的数组中选择的随机索引相同