对于有更多javascript经验的人来说,这可能是相当简单的任务。我希望有一个图像阵列,然后循环显示每个图像,每个图像之间有一定的时间间隔。
我知道我可以使用插件,但我正在尝试学习javascript,所以我想避免使用快捷方式(当然除了在这里寻求帮助的捷径!)
由于
答案 0 :(得分:1)
var img;
for(length)
{
img[i]=new Image();
img[i].src="src";
}
//用于将图像存储为数组
var count=0;
var timerid = setInterval(function()
{
//fade in image
count++;
if(count > length)clearInterval(timerId);
}, 1000);
更好的选择是使用display:none标签将所有图像添加到image.onload上的DOM中,然后使用循环逐个淡入图像,
答案 1 :(得分:0)
另一个选择是为柜台使用一个闭包。计数器最优雅地实现为闭包。
// Wrapping the code in a self envoking function prevents polluting the global namespace.
(function() {
// The images array.
var images = ['image1.jpg', 'image2.jpg', 'image3.jpg'];
// The counter function using a closure.
var add = (function() {
// Setting the counter to the last image so it will start with the first image in the array.
var counter = images.length - 1;
return function() {
// When the last image is shown reset the counter else increment the counter.
if(counter === images.length - 1) {
counter = 0;
} else {
counter+=1;
}
return counter;
}
})();
// The function for changing the images.
setInterval(
function() {
console.log(images[add()]);
}
, 1000);
})();