最近新學習了vuejs,嘗試著用vuejs寫了一個簡單的圖片輪播,便做個簡單的記錄
以下只貼出carousel.vue代碼,其他的省略
<template> <div ref="root"> <div class="sliderPanel"> <div v-for="(item,index) in imgArray" class="verticalCenter picbox"> <transition name="slide-fade"> <img :style="{width:width,top:top}" @mouseover="clearAuto" @mouseout="slideAuto" v-show="index===selectIndex" :src="item.url" style="min-height: 100%"> </transition> </div> </div> <div @click="clickLeft" @mouseover="clearAuto" @mouseout="slideAuto" class="arrowLeft verticalCenter horizaCenter"> 左移 </div> <div @click="clickRight" @mouseover="clearAuto" @mouseout="slideAuto" class="arrowRight verticalCenter horizaCenter"> 右移 </div> <div class="sliderBar horizaCenter"> <div v-for="(item,index) in imgArray" @mouseover="clearAuto" @mouseout="slideAuto" @click="setIndex(index)" class="circle" :class="{circleSelected:index===selectIndex}"> </div> </div> </div> </template> <script> const SCREEN_WIDTH=document.body.clientWidth//網頁可見區域寬 const SCREEN_HEIGHT=document.body.scrollHeight//網頁正文全文高 var selectIndex=0 var timer=null export default { name: "ErCarousel", data() { return { selectIndex:0, width:'100%', height:SCREEN_HEIGHT+'px', top:0, imgArray:[ { url:'/src/components/carousel/image/1.jpg', }, { url:'/src/components/carousel/image/2.jpg', }, { url:'/src/components/carousel/image/3.jpg', } ] } }, methods:{ slideAuto:function () { var that=this; timer=setInterval(function(){ that.clickRight(); },3000) //clearInterval(timer); }, clearAuto:function(){ clearInterval(timer); }, clickLeft:function(){ if(this.selectIndex==0){ this.selectIndex=this.imgArray.length-1; }else{ this.selectIndex--; } console.log(this.selectIndex); }, clickRight:function(){ if(this.selectIndex==this.imgArray.length-1){ this.selectIndex=0; }else{ this.selectIndex++; } }, setIndex:function (index) { this.selectIndex=index; } }, mounted:function(){ this.slideAuto(); } } </script> <style> 整個模塊也是分為了template,script,style三個部分,簡單的介紹了圖片左右切換,以及css滑動效果等,純當練手。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答