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++) {