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 相关文章推荐
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 Javascript
JS实现关键字搜索时的相关下拉字段效果
Aug 05 Javascript
window.location 对象所包含的属性
Oct 10 Javascript
jQuery过滤选择器用法分析
Feb 10 Javascript
了解Javascript的模块化开发
Mar 02 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
js简单设置与使用cookie的方法
Jan 22 Javascript
前端分页功能的实现以及原理(jQuery)
Jan 22 Javascript
网页中右键功能的实现方法之contextMenu的使用
Feb 20 Javascript
关于微信小程序登录的那些事
Jan 08 Javascript
JS实现随机点名器
Apr 12 Javascript
vue中是怎样监听数组变化的
Oct 24 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源码之 ext/mysql扩展部分
2009/07/17 PHP
php牛逼的面试题分享
2013/01/18 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
php实例化一个类的具体方法
2019/09/19 PHP
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
javascript实现表单验证
2016/01/29 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
关于python写入文件自动换行的问题
2018/06/23 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
网游商务专员求职信
2013/10/15 职场文书
资产经营总监岗位职责范文
2013/12/01 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
初中地理教学反思
2016/02/19 职场文书
幼儿园2016圣诞节活动总结
2016/03/31 职场文书
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers