vue.js实现简单轮播图效果


Posted in Javascript onOctober 10, 2017

学习了vue.js也有一段时间了,做了个小demo来熟悉一下,很常见的demo,-------轮播图,没学vue之前的轮播图用JavaScript或者jquery都非常简单,发现用vue来写也挺有意思的。说下简单的思路,图片的轮播用v-if或者v-show来代替原来的Js滑动,过度效果用transition可简单实现,注意,滑动过程中是能看见两张图的,所以要用两个transition。

(1)先写出整体的框架

<template>
<div class="slide-show">
<div class="slide-img">
<transition name="slide-trans" >
<img v-if='ifshow' :src='imgArray[nowindex]'>
</transition>
<transition name="slide-trans-old">
  <img v-if="!ifshow" :src="imgArray[nowindex]">
 </transition>
<ul class="slide-pages">
<li v-for="(item,index) in imgArray">
<span :class="{on :index===nowindex}" @click="goto(index)"></span>
</li>
</ul>
</div>
</div>
</template>

根据imgArray这个照片的数组渲染小圆点的数量,为span绑定on为小圆点点亮的状态,照片的显示隐藏通过自定义变量ifshow来显示,nowindex则控制轮播对应的照片。

(2)轮播图的数组,如果是本地的图片,而且不放在static文件下的,请用require圈上路径,否则路径会报错。如果是从后台服务器获取的则不需要。

data(){
return{
imgArray: [
require('../../img/item_01.png'),
require('../../img/item_02.png'),
require('../../img/item_03.png'),
require('../../img/item_04.png')
]
}
}

(3)主要就是通过改变自定义变量nowindex来改变轮播图的状态,要注意滑动的过程是能看见两张图的,所以在goto函数中设置了一个短暂的定时器,让一张显示另一张隐藏,分别加上不同的过度效果。

<script type="text/javascript">
export default {
props:{
imgArray:{
type:Array,
default:[]
}
},
data() {
return {
ifshow:true,
nowindex:0,
}
},
created(){
this.timerun()
},
computed:{
nextindex(){
if(this.nowindex === this.imgArray.length -1){
return 0
}else{
return this.nowindex + 1
}
}
},
methods: {
goto(index){
let that = this;
this.ifshow = false;
setTimeout(function(){
that.ifshow = true;
that.nowindex = index;
},100)

},
timerun(){
 let that = this;
 setInterval(function(){
 that.goto(that.nextindex)
 },2000)
 }
}
}
</script>

到这里,这个简单的轮播图就到此结束了。

关于vue.js的学习教程,请大家点击专题vue.js组件学习教程、Vue.js前端组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS将制定内容复制到剪切板示例代码
Feb 11 Javascript
jquery mobile 移动web(5)
Dec 20 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
JavaScript中的ajax功能的概念和示例详解
Oct 17 Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 Javascript
浅析JS抽象工厂模式
Dec 14 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
Dec 10 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
Jan 21 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
浅谈Javascript中的对象和继承
Apr 19 Javascript
vue实现图书管理系统
Dec 29 Vue.js
seajs中最常用的7个功能、配置示例
Oct 10 #Javascript
SeaJS中use函数用法实例分析
Oct 10 #Javascript
vue.js如何将echarts封装为组件一键使用详解
Oct 10 #Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 #Javascript
基于vue的换肤功能的示例代码
Oct 10 #Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 #Javascript
利用JS hash制作单页Web应用的方法详解
Oct 10 #Javascript
You might like
Windows7下的php环境配置教程
2015/02/28 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
Javascript对象属性方法汇总
2013/11/21 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
windows下python连接oracle数据库
2017/06/07 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
django的model操作汇整详解
2019/07/26 Python
详解django中Template语言
2020/02/22 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
abstract是什么意思
2012/02/12 面试题
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
实习指导老师评语
2014/04/26 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
创先争优宣传标语
2014/10/08 职场文书
学校教代会开幕词
2016/03/04 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android