Commit 932db62320c5fb4e692ec425cea781706999d31d

Authored by Rijn
1 parent 62808b2b

remove autoplay direction prop

fix clear interval bug
src/components/carousel/carousel.vue
1 <template> 1 <template>
2 <div :class="classes"> 2 <div :class="classes">
3 - <button :class="arrowClasses" class="left" @click="add(-1)"> 3 + <button :class="arrowClasses" class="left" @click="arrowEvent(-1)">
4 <Icon type="chevron-left"></Icon> 4 <Icon type="chevron-left"></Icon>
5 </button> 5 </button>
6 <div :class="[prefixCls + '-list']"> 6 <div :class="[prefixCls + '-list']">
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 <slot></slot> 8 <slot></slot>
9 </div> 9 </div>
10 </div> 10 </div>
11 - <button :class="arrowClasses" class="right" @click="add(1)"> 11 + <button :class="arrowClasses" class="right" @click="arrowEvent(1)">
12 <Icon type="chevron-right"></Icon> 12 <Icon type="chevron-right"></Icon>
13 </button> 13 </button>
14 <ul :class="dotsClasses"> 14 <ul :class="dotsClasses">
@@ -47,13 +47,6 @@ @@ -47,13 +47,6 @@
47 type: Number, 47 type: Number,
48 default: 2000 48 default: 2000
49 }, 49 },
50 - autoplayDirection: {  
51 - type: String,  
52 - default: 'left',  
53 - validator (value) {  
54 - return oneOf(value, ['left', 'right']);  
55 - }  
56 - },  
57 easing: { 50 easing: {
58 type: String, 51 type: String,
59 default: 'ease' 52 default: 'ease'
@@ -197,6 +190,10 @@ @@ -197,6 +190,10 @@
197 index = index % this.slides.length; 190 index = index % this.slides.length;
198 this.currentIndex = index; 191 this.currentIndex = index;
199 }, 192 },
  193 + arrowEvent (offset) {
  194 + this.setAutoplay();
  195 + this.add(offset);
  196 + },
200 dotsEvent (event, n) { 197 dotsEvent (event, n) {
201 if (event === this.trigger && this.currentIndex !== n) { 198 if (event === this.trigger && this.currentIndex !== n) {
202 this.currentIndex = n; 199 this.currentIndex = n;
@@ -208,7 +205,7 @@ @@ -208,7 +205,7 @@
208 window.clearInterval(this.timer); 205 window.clearInterval(this.timer);
209 if (this.autoplay) { 206 if (this.autoplay) {
210 this.timer = window.setInterval(() => { 207 this.timer = window.setInterval(() => {
211 - this.add(this.autoplayDirection === 'left' ? 1 : -1); 208 + this.add(1);
212 }, this.autoplaySpeed); 209 }, this.autoplaySpeed);
213 } 210 }
214 }, 211 },
test/routers/carousel.vue
@@ -12,13 +12,6 @@ @@ -12,13 +12,6 @@
12 Speed <Slider :value.sync="autoplaySpeed" :min="300" :max="5000"></Slider> 12 Speed <Slider :value.sync="autoplaySpeed" :min="300" :max="5000"></Slider>
13 </i-col> 13 </i-col>
14 <i-col span="4"> 14 <i-col span="4">
15 - <p>Direction</p>  
16 - <Button-group>  
17 - <i-button @click="autoplayDirection = 'left'">Left</i-button>  
18 - <i-button @click="autoplayDirection = 'right'">Right</i-button>  
19 - </Button-group>  
20 - </i-col>  
21 - <i-col span="4">  
22 Switch To 15 Switch To
23 <Button-group> 16 <Button-group>
24 <i-button @click="currentIndex = 0">0</i-button> 17 <i-button @click="currentIndex = 0">0</i-button>
@@ -66,7 +59,6 @@ @@ -66,7 +59,6 @@
66 :current-index.sync="currentIndex" 59 :current-index.sync="currentIndex"
67 :autoplay="autoplay" 60 :autoplay="autoplay"
68 :autoplay-speed="autoplaySpeed" 61 :autoplay-speed="autoplaySpeed"
69 - :autoplay-direction="autoplayDirection"  
70 :dots="dots" 62 :dots="dots"
71 :trigger="trigger" 63 :trigger="trigger"
72 :arrow="arrow" 64 :arrow="arrow"
@@ -193,7 +185,6 @@ @@ -193,7 +185,6 @@
193 currentIndex: 0, 185 currentIndex: 0,
194 autoplay: true, 186 autoplay: true,
195 autoplaySpeed: 2000, 187 autoplaySpeed: 2000,
196 - autoplayDirection: 'left',  
197 remove: false, 188 remove: false,
198 pushItem: [], 189 pushItem: [],
199 arrow: 'hover', 190 arrow: 'hover',