Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在一个阵列中加载要褪色的多个图像?_Javascript - Fatal编程技术网

Javascript 如何在一个阵列中加载要褪色的多个图像?

Javascript 如何在一个阵列中加载要褪色的多个图像?,javascript,Javascript,我有下面的代码,它假设加载两个图像,然后淡入淡出。但要在每次淡入时加载所有图像,每次加载的图像都相同。有人知道吗 var img,i, imageCount=[1,2,3,4], div=document.getElementById('foo'); console.log(imageCount.length); 对于(i=1;i您在onload中重用img,这意味着当for运行下一个索引时,img将被覆盖。在onload事件中,只有最后一个img将被追加到div(4次,但这将导致一个图像标记

我有下面的代码,它假设加载两个图像,然后淡入淡出。但要在每次淡入时加载所有图像,每次加载的图像都相同。有人知道吗

var img,i,
imageCount=[1,2,3,4],
div=document.getElementById('foo');
console.log(imageCount.length);

对于(i=1;i您在
onload
中重用
img
,这意味着当
for
运行下一个索引时,
img
将被覆盖。在
onload
事件中,只有最后一个
img
将被追加到div(4次,但这将导致一个图像标记)

由于您在
img
本身上附加了
onload
功能,因此可以使用
引用图像:

img.onload = function() {
    div.appendChild(this);
};

另一个建议是:与其使用数组及其
长度
来增强
for
循环,为什么不直接使用count变量呢

var imageCount = 4;
...
for (i = 1; i <= imageCount; i++) {
var-imageCount=4;
...

对于(i=1;i如果我使用
this
,那么它将同时显示所有图像,那么您可能不希望使用
onload
处理程序,因为该处理程序在图像加载时触发,并且无论您是否将其添加到DOM中,它都将加载。我很确定这是CSS问题。所有图片都正确加载,但只有第一个正在转换。检查OP的JSFIDLE。只加载最后一个图像(frame_4.jpg)。动画列表从未启动/恢复。
onload
不是该作业的正确工具。好的,但是如果我删除onload,我想它仍然会一次加载所有图像(我真的不确定)问题是因为JavaScript是异步的,所以for continue不等待onload函数结束,所以只显示最后一个图像。
var imageCount = 4;
...
for (i = 1; i <= imageCount; i++) {