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 相关文章推荐
javascript 打印内容方法小结
Nov 04 Javascript
JavaScript类和继承 this属性使用说明
Sep 03 Javascript
什么是DOM(Document Object Model)文档对象模型
Mar 05 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
ES6新特性一: let和const命令详解
Apr 20 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
Jun 30 Javascript
AngularJS中filter的使用实例详解
Aug 25 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
Sep 14 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
Mar 29 Javascript
Vue 中可以定义组件模版的几种方式
Aug 06 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 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 多进程 解决难题
2009/06/22 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python创建学生管理系统
2019/11/22 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
《最大的“书”》教学反思
2014/02/14 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
2015小学师德工作总结
2015/07/21 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python