Vue实现轮播图

需要的相关知识

列表渲染
数据绑定
事件处理


代码

代码 Html部分:

<div id="app">
					<ol>
						<li v-for="(slide,index) in slides" @mouseover="goto(index)">
							<a :href="slide.go" target="_blank" > {{slides[index].categoryName}} </a>
							// 通过v-for 将data里的数据渲染的页面上,通过v-bind:href 获取链接,点击链接跳转页面
						</li>
					</ol>
					<img :src="slides[index].imagePath" @mouseenter="pause" @mouseleave="play" />
						<a class="caption" :href="slides[index].go">{{slides[index].caption}} </a>
						// 通过v-bind:src绑定图像 通过数组index定位每一个图像及链接
			</div>

通过v-for 将data里的数据渲染的页面上,通过v-bind:href 获取链接,点击链接跳转页面
通过v-bind:src绑定图像 通过数组index定位每一个图像及链接
@mouseenter和@mouseleave 两个事件函数 分别使鼠标进入图像和离开图像执行pause()函数和play()函数,实现鼠标进入暂停播放和离开开启轮播效果

Vue部分

var vm = new Vue({
				el: '#app',
				data: {
					slides: [{
							categoryName: '热点',
							imagePath: 'images-新浪微博/1.jpg',
							caption: '航拍南京五一出城车辆:“小铁盒”缓慢前行',
							go: '1.html'
						},
						{
							categoryName: '聚焦',
							imagePath: 'images-新浪微博/2.jpg',
							caption: '西湖断桥客流爆满 美女城管巡逻队帅气吸睛',
							go: '2.html'
						},
						{
							categoryName: '天下',
							imagePath: 'images-新浪微博/3.jpg',
							caption: '载45人客车爆燃 瞬间被烧成空架',
							go: '3.html'
						},
						{
							categoryName: '百态',
							imagePath: 'images-新浪微博/4.jpg',
							caption: '寒流袭英法 酿酒商点蜡烛为葡萄取暖',
							go: '4.html'
						},
						{
							categoryName: '军事',
							imagePath: 'images-新浪微博/5.jpg',
							caption: '即将首飞!中国AG600两栖飞机完成首次滑行',
							go: '5.html'
						}
					],
					index: 0,
				},
				methods: {
					pause: function() {
						clearInterval(this.timer);
						//鼠标进入后消除定时器,实现暂停轮播
					},
					play: function() {
						this.timer = setInterval(this.goto, 3000)
					},
					goto: function() {						
						if (this.index === this.slides.length-1) {
							this.index = 0;
						} else {
							this.index++;
						}	
					}
				},

				mounted: function() {
					this.play() 
				}
			});

通过生命钩子函数,使一进入页面就开始执行play()函数,开启定时器setInterval()(定义一个变量this.timer,方便后面消除定时器)执行goto()函数,通过控制index来使src中的index变化,实现轮播


总结

利用v-bind 绑定数据(容易理解的说为了获取vue中的数据),利用v-for渲染数据,利用生命钩子函数mounted启动定时器和消除定时器来实现一些功能。
不明白的小伙伴可以多看几遍或者留言问我哦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CforikS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值