Vue.js method to write a carousel chart: first write the overall framework; then define the array of carousel charts and upload local images; finally change the status of the carousel chart by changing the custom variable nowindex .
The operating environment of this tutorial: windows10 system, vue2.9, this article is applicable to all brands of computers.
[Related article recommendations: vue.js]
##How to write a carousel image in vue.js:
Let’s talk about a simple idea. Usev-if or
v-show for image carousel instead of the original Js sliding, and use transition for transition effect. It can be easily implemented. Note that you can see two pictures during the sliding process, so you need to use two transitions.
<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>
data(){ return{ imgArray: [ require('../../img/item_01.png'), require('../../img/item_02.png'), require('../../img/item_03.png'), require('../../img/item_04.png') ] } }
<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>
Related free learning recommendations: JavaScript(Video)
The above is the detailed content of How to write a carousel image in vue.js. For more information, please follow other related articles on the PHP Chinese website!