轮播图的思路是:一组图片进行不停地循环,如果循环到最后一张图片,就从第一张开始,不停循环,我们可以设置图片切换的时间.
1.首先我们先把我们需要用到的数据以数组的方式定义在data中,再定义一个当前显示在页面的图片的值,默认为0.
data() {
return {
v:0,
imglist:[
{"id":0,img:"/pics/picture1.jpg"},
{"id":1,img:"/pics/picture3.jpg"},
{"id":2,img:"/pics/picture4.jpg"},
]
}
},
2.我们将定义的数据渲染到页面中,v-show使用三目判断定义的值和下标是否相等,如果相等值就为true(显示),否则值为false(隐藏)
<div class="imgbox">
<img :src="item.img" alt="" v-for="(item, index) in imglist" :key="index" v-show="v==index?true:false">
</div>
3.下一步要让轮播图运行起来,created()这是生命周期中的一个属性,他的作用是在项目启动的时候实现函数自执行. 先设置一个定时器,设置两秒,就是图片每两秒切换一次,然后做判断,如果定义的值大于图片数字的长度减1,那么就让值=0,从第一张开始,否则,就让图片一直++,不断递增,实现轮播图的效果.
created(){
setInterval(() => {
if(this.v>=2){
this.v=0
}
else{
this.v++
}
}, 2000);
}
本文详细介绍了如何使用Vue.js创建一个轮播图组件。首先在data中定义了图片数组和初始显示的图片索引,接着利用v-show和v-for指令在模板中渲染图片,并根据条件控制图片的显示与隐藏。最后,在created钩子函数中设置定时器,每隔两秒自动切换图片,当达到最后一张时,重新从第一张开始,实现了轮播效果。
1055

被折叠的 条评论
为什么被折叠?



