快速了解轮播图编写

用vue简单实现轮播图

思路:在轮播图数组imgList中,定义一个变量activeIndex = 0表示第一张图片,用v-for循环imgList得到所有图片,再用v-show根据图片下标来显示,利用定时器来控制图片切换activeIndex++就可以了,这样简单的轮播图就完成了。
在这里插入图片描述

第一步:

随意找几张图片用来切换,在data里定义list数组用来放图片地址。定义变量。代码如下:

 data() {
                return {
                    list: [
                        'http://p1.music.126.net/M6O8M7AYnQSVK05xAb9J9A==/109951165049273694.jpg?imageView&quality=89',
                        'http://p1.music.126.net/jmSZkitsHu6P2osBGwVEtg==/109951165049297767.jpg?imageView&quality=89',
                        'http://p1.music.126.net/JvG5vdr7omoTUAwtfmDlNg==/109951165049340661.jpg?imageView&quality=89',
                        'http://p1.music.126.net/yjlmXhnl8z6Y-R8ybkIpdw==/109951165050136855.jpg?imageView&quality=89',
                        'http://p1.music.126.net/nhXeKMPCgZZbn1cyowYL_Q==/109951165049323147.jpg?imageView&quality=89'
                    ],
                    timer: null,//定义定时器
                    activeindex: 0//默认显示图片   0表示默认第一张图片
                   }
          }
第二步

在id为app的div容器里创建一个class为container的div,在container里写一个img标签,用v-for循环这个标签,再用v-show显示图片下表等于activeIndex的图片,v-bind绑定src。

 <div id="app">
        <div class="container">
            <img :src="img" v-for="(img, i) in list" v-show="i===activeindex"></img>
            //i为数组下标
        </div>
 </div>
第三步

在mounted里使用定时器,每隔2秒activeIndex++,activeIndex值变了,那么图片就变了,也就实现了图片切换的效果。代码如下:

 mounted() {
            let timer  setInterval(() => {
                        this.activeindex++
                        if (this.activeindex === this.list.length) this.activeindex = 0 
                        //当activeIndex值===数组长度时 把activeIndex值变为0
                        //通俗的说就是图片切换到最后一张时,再回到第一张。
                    }, 1500);
            },

到这里轮播图的基本功能就已经实现了,接下来就是来优化或者美化轮播图。

一般来说,轮播图下方都会有几个点:

点
接下来我们来实现一下这个点。

功能:当我们鼠标 悬浮在一个点上,那么轮播图显示对应的图片 并从对应图片开始轮播。

第一步

用ul li 画出如图所示的样式,并且定位在轮播图的偏下位置和创建鼠标事件。这里css样式我就不给大家写了。

<ul>
                <li @mouseenter='hover(i)' :class='{active:i===activeindex}' v-for="(img, i) in list"></li>
                //
            </ul>
第二步

在methods里写函数hover(i)来实现鼠标悬停显示对应图片。

hover(i) {
                    clearInterval(this.timer)
                    //这里清楚定时器时为了消除鼠标悬浮后立刻切换图片的不好效果
                    this.activeindex = i
                    this.run()//从新启动定时器    //这是定时器被封装后的方法 如下代码所示:
                    //run() {
                       // this.timer = setInterval(() => {
                       // this.activeindex++
                        //if (this.activeindex === this.list.length) //this.activeindex = 0
                   // }, 2000);
              //  }
                }

至此就是本次轮播图的所有内容。希望大家喜欢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值