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获取图片实际宽高及根据图片大小进行自适应
Aug 11 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
jQuery中:not选择器用法实例
Dec 30 Javascript
js中this用法实例详解
May 05 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 Javascript
jqueryUI tab标签页代码分享
Oct 09 jQuery
微信小程序 动画的简单实例
Oct 12 Javascript
JQuery实现table中tr上移下移的示例(超简单)
Jan 08 jQuery
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
js实现div色块拖动录制
Jan 16 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
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Python hmac模块使用实例解析
2019/12/24 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
汽车检测与维修专业求职信
2013/10/30 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
服装行业创业计划书范文
2014/02/05 职场文书
社区文化建设方案
2014/05/02 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
2019教师的学习计划
2019/06/25 职场文书
Kubernetes控制节点的部署
2022/04/01 Servers