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 相关文章推荐
iframe异步加载实现点击左边菜单加载右边内容实例讲解
Mar 04 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
jQuery中阻止冒泡事件的方法介绍
Apr 12 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
JavaScript将数组转换成CSV格式的方法
Mar 19 Javascript
js实现表格筛选功能
Jan 18 Javascript
通过npm引用的vue组件使用详解
Mar 02 Javascript
Vue2.0 组件传值通讯的示例代码
Aug 01 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 Javascript
Vue全局分页组件的实现代码
Aug 10 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 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
php 变量定义方法
2009/06/14 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
2018/11/11 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
传播学毕业生求职信
2013/10/11 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
思想品德评语大全
2014/12/31 职场文书
大学生年度个人总结
2015/02/15 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python