我在手动和自动幻灯片播放方面遇到问题。如果按下手动幻灯片放映按钮,我找不到如何在函数init_slideshow中重置setInterval的解决方案。 js代码:
function iterator(a) {
if (!Array.isArray(a)) {
return;
}
let nextIndex = 0;
return function next(b) {
if (b == undefined) {
if (nextIndex == a.length) {
throw "error";
} else {
return a[nextIndex++];
}
} else if(Array.isArray(b)) {
a = b;
nextIndex = 0;
return next;
// return iterator(b);
} else {
return nextIndex+= b;
}
}
}
function init_slideshow(image_urls, dom, automatic = false, delay = 3000)
{
let v = iterator(image_urls);
function slideshow() {
let img = "";
try {
img = v();
} catch {
v(image_urls);
img = v();
}
dom.src = img;
}
slideshow();
let t = setInterval(slideshow,delay);
if (automatic) {
return t;
} else {
return slideshow;
}
}