关于js中的for循环,我想用它实现图片轮播,这样可以么

JavaScript035

关于js中的for循环,我想用它实现图片轮播,这样可以么,第1张

从 逻辑上来看  ,你设置了定时器 就不要用 for 循环了...

按你的写法 是每隔1秒钟就把所有图片闪现一边 而不是每一秒中换一幅图片.

改成下面试一下 , 代码未调试

<script>

window.onload=setInterval(myvar(),1000)

jpgindex=0

var arr=new Array("","img/btn_01.jpg","img/btn_02.jpg","img/btn_03.jpg","img/btn_04.jpg")

function myvar(){

var src=document.getElementById("demo")

src.src=arr[jpgindex]

if(jpgindex=arr.length-1){

jpgindex=0

console.log(jpgindex)

}else{

jpgindex++

}

</script>

跟普通的左右切换轮播图类似,但是它看起来是首尾相连的。

首先来讲一下我的思路:

我们要想无缝切换图片,必须要在所有图片的最后添加一张第一张图片,因为要实现从最后一张切换到第一张时有过渡效果;

之后我们要让你处在第一张时,向前向后切换都要进行 隐式切换

我们也可以将所有的轮播图的图片外面套一层div,并设置绝对定位,然后使用 父相子绝 ,来让图片可以相对父元素定位(父元素就是装轮播图的盒子)

之后,只要我们让不该显示的图片定位到盒子范围外的位置(父元素设置overflow:hidden),在需要切换图片时,我们就把当前图片前后的图片定位到对应位置,然后通过setInterval方法循环改变其位置实现轮播效果。之后更改当前图片的索引即可。