/** * 顶部header */ Vue.component("carousel-tesedangjian", { template: ` `, props: { // list:{ // type:Array // }, height:{ type:Number }, width:{ type:Number }, data:{ type:Array } }, data() { return { interval:undefined, left:0, direction:'left', forData:[], arrowLeft: -30, arrowRight:-30, dataList:[] } }, mounted(){ this.init() }, methods: { init(){ this.dataList=this.data.map(item=>item.url) this.forData = this.data this.interval = setInterval(this.timer, 3000); }, carouselMouseover(){ this.arrowLeft =10 this.arrowRight =10 clearInterval(this.interval); }, carouselMouseout(){ this.arrowLeft = -30 this.arrowRight =-30 this.direction = 'left' this.interval=setInterval(this.timer,3000); }, clickCtrl(direction){ this.direction = direction this.timer() }, timer(){ if(this.direction == 'left'){ this.left = this.left - this.width if(this.left == -((this.forData.length) * this.width)){ this.left = 0 } }else{ if(this.left == 0){ this.left = -((this.forData.length-1) * this.width) }else { this.left = this.left + this.width } } }, }, watch:{ data: function (n,o) { this.init() } }, })