手动和自动幻灯片放映冲突

时间:2020-09-29 08:01:33

标签: slideshow

我在手动和自动幻灯片播放方面遇到问题。如果按下手动幻灯片放映按钮,我找不到如何在函数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;
    }
}

0 个答案:

没有答案