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 相关文章推荐
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
JavaScript字符串删除重复字符的方法
Dec 25 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
Jan 14 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
js以及jquery实现手风琴效果
Apr 17 Javascript
javascript实现下雨效果
Mar 27 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
Dec 06 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
Aug 02 Javascript
Javascript查看大图功能代码实现
May 07 Javascript
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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
2019/02/02 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
聊聊Python中的pypy
2018/01/12 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
详解Python中的测试工具
2019/06/09 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
Django中的cookie和session
2019/08/27 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
幼儿园大班教师随笔
2015/08/14 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
python中取整数的几种方法
2021/11/07 Python
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python