【问题标题】:JavaScript load images with specific durationJavaScript 加载具有特定持续时间的图像
【发布时间】:2017-03-13 08:38:58
【问题描述】:

我有两个数组:第一个带有图像路径,第二个带有不同的持续时间,我正在尝试使用以下函数来动态设置我的“changeImage()”函数的“setTimeout”,如下所示:

            function changeImage(){
            var img = document.getElementById("img");
            img.src = images[x];
            var ztme = tme[x];
            x++;

            if(x >= images.length){
                x = 0;
            } 

            fadeImg(img, 100, true);
            setTimeout("changeImage()",ztme ); //This is the problem!
        }

        function fadeImg(el, val, fade){
            if(fade === true){
                val--;
            }else{
                val ++;
            }

            if(val > 0 && val < 100){
                el.style.opacity = val / 100;
                setTimeout(function(){fadeImg(el, val, fade);}, 10);
            }
        }

        var images = [],
        x = 0;
        images[0] = "daki/eco_pic.jpg";
        images[1] = "daki/art_tnt.gif";
        images[2] = "daki/mkv_uk.jpg";
        images[3] = "daki/bolo_trt.jpg";
        images[4] = "daki/folo_fr.jpg";

        var tme = [], //values of 'Time' for a picture to stay displayed
        tme[0]= 10000; 
        tme[1]= 50000; 
        tme[2]= 2000;
        tme[3]= 30000;
        tme[4]= 5000;
        setTimeout("changeImage()", 15000);  

如果我给出一个固定的超时时间,一切都会像魅力一样工作。因此,动态设置它只会产生错误。

让这个 changeImage() 函数动态获取时间的任何想法? 非常感谢任何帮助。 提前谢谢你。

【问题讨论】:

标签: javascript arrays image load settimeout


【解决方案1】:

您的 tme 数组未正确初始化。您应该在声明后使用 semi 列;

    var tme = []; //<= 
    tme[0]= 10000; 
    tme[1]= 50000; 
    tme[2]= 2000;
    tme[3]= 30000;
    tme[4]= 5000;
    setTimeout("changeImage()", 15000);  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-30
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    相关资源
    最近更新 更多