为了账号安全,请及时绑定邮箱和手机立即绑定

无法修改成for循环来轮播

无法修改成for循环来轮播

哆啦的时光机 2019-03-20 18:15:38
写了一个轮播,测试通过,有点丑。function autoPlay(){    var  myimg = document.getElementById("loopimg");    if(myimg.src.match("i1.png")){        myimg.src = "image/i2.png";    }    else if(myimg.src.match("i2.png")){        myimg.src = "i3.jpg";    }    else if(myimg.src.match("i3.png")){        myimg.src = "i4.jpg";    }    else if(myimg.src.match("i4.png")){        myimg.src = "i5.jpg";    }    else{        myimg.src = "image/i1.png";    }}setInterval(autoPlay,1000)改写成数组形式也通过了。var  imgs = ["image/i1.png","image/i2.png","image/i3.png","image/i4.png","image/i5.png"];var  imgsIndex = 0;function autoPlay(){    if(index == imgs.length-1){        imgsIndex = 0;     }    var  myimg = document.getElementById("loopimg");    myimg.src = imgs[imgsIndex];    imgsIndex++;}setInterval(autoPlay,1000)我的想法:改写成for循环的轮播,每次循环的时候,sleep 一秒,搜索了一下资料,发现js的sleep功能不太好实现。请问,可否修改成for循环的轮播。
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超5个赞

var imgs = ["image/i1.png", "image/i2.png", "image/i3.png", "image/i4.png", "image/i5.png"];


function delay(n) {

  return new Promise(resolve => setTimeout(resolve, n))

}


async function autoPlay() {

  for (let img of imgs) {

    var myimg = document.getElementById("loopimg");

    myimg.src = img;

    await delay(1000)

  }

  autoPlay()

}

autoPlay()


查看完整回答
反对 回复 2019-04-03
  • 1 回答
  • 0 关注
  • 438 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号