mirror of https://github.com/ElemeFE/element
				
				
				
			Carousel: add prop loop (#13217)
* Carousel: add prop `loop` which can control whether display in loop (#12869) * Carousel: add es doc for new prop `loop`pull/13263/head
							parent
							
								
									0d526b8371
								
							
						
					
					
						commit
						933109fd5b
					
				| 
						 | 
				
			
			@ -219,6 +219,7 @@ When a page is wide enough but has limited height, you can activate card mode fo
 | 
			
		|||
| indicator-position | position of the indicators | string | outside/none | — |
 | 
			
		||||
| arrow | when arrows are shown | string | always/hover/never | hover |
 | 
			
		||||
| type | type of the Carousel | string | card | — |
 | 
			
		||||
| loop | display the items in loop | boolean | - | true |
 | 
			
		||||
 | 
			
		||||
### Carousel Events
 | 
			
		||||
| Event Name | Description | Parameters |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -223,6 +223,7 @@ Cuando una página es suficientemente ancha pero tiene una altura limitada, pued
 | 
			
		|||
| indicator-position | Posición del indicador de paginación     | string  | outside/none       | —           |
 | 
			
		||||
| arrow              | Cuando se muestran las flechas           | string  | always/hover/never | hover       |
 | 
			
		||||
| type               | Tipo de carrusel                         | string  | card               | —           |
 | 
			
		||||
| loop               | Si mostrar cíclicamente                  | boolean | —                  | true        |
 | 
			
		||||
 | 
			
		||||
### Eventos de Carousel
 | 
			
		||||
| Nombre evento | Descripción                              | Parametros                               |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -219,6 +219,7 @@
 | 
			
		|||
| indicator-position | 指示器的位置 | string | outside/none | — |
 | 
			
		||||
| arrow | 切换箭头的显示时机 | string | always/hover/never | hover |
 | 
			
		||||
| type | 走马灯的类型 | string | card | — |
 | 
			
		||||
| loop | 是否循环显示 | boolean | - | true |
 | 
			
		||||
 | 
			
		||||
### Carousel Events
 | 
			
		||||
| 事件名称 | 说明 | 回调参数 |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@
 | 
			
		|||
        if (this.$parent.type !== 'card' && oldIndex !== undefined) {
 | 
			
		||||
          this.animating = index === activeIndex || index === oldIndex;
 | 
			
		||||
        }
 | 
			
		||||
        if (index !== activeIndex && length > 2) {
 | 
			
		||||
        if (index !== activeIndex && length > 2 && this.$parent.loop) {
 | 
			
		||||
          index = this.processIndex(index, activeIndex, length);
 | 
			
		||||
        }
 | 
			
		||||
        if (this.$parent.type === 'card') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@
 | 
			
		|||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          v-if="arrow !== 'never'"
 | 
			
		||||
          v-show="arrow === 'always' || hover"
 | 
			
		||||
          v-show="(arrow === 'always' || hover) && (loop || activeIndex > 0)"
 | 
			
		||||
          @mouseenter="handleButtonEnter('left')"
 | 
			
		||||
          @mouseleave="handleButtonLeave"
 | 
			
		||||
          @click.stop="throttledArrowClick(activeIndex - 1)"
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@
 | 
			
		|||
        <button
 | 
			
		||||
          type="button"
 | 
			
		||||
          v-if="arrow !== 'never'"
 | 
			
		||||
          v-show="arrow === 'always' || hover"
 | 
			
		||||
          v-show="(arrow === 'always' || hover) && (loop || activeIndex < items.length - 1)"
 | 
			
		||||
          @mouseenter="handleButtonEnter('right')"
 | 
			
		||||
          @mouseleave="handleButtonLeave"
 | 
			
		||||
          @click.stop="throttledArrowClick(activeIndex + 1)"
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +83,11 @@ export default {
 | 
			
		|||
      type: String,
 | 
			
		||||
      default: 'hover'
 | 
			
		||||
    },
 | 
			
		||||
    type: String
 | 
			
		||||
    type: String,
 | 
			
		||||
    loop: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: true
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  data() {
 | 
			
		||||
| 
						 | 
				
			
			@ -114,6 +118,10 @@ export default {
 | 
			
		|||
 | 
			
		||||
    autoplay(val) {
 | 
			
		||||
      val ? this.startTimer() : this.pauseTimer();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    loop() {
 | 
			
		||||
      this.setActiveItem(this.activeIndex);
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -167,7 +175,7 @@ export default {
 | 
			
		|||
    playSlides() {
 | 
			
		||||
      if (this.activeIndex < this.items.length - 1) {
 | 
			
		||||
        this.activeIndex++;
 | 
			
		||||
      } else {
 | 
			
		||||
      } else if (this.loop) {
 | 
			
		||||
        this.activeIndex = 0;
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -197,9 +205,9 @@ export default {
 | 
			
		|||
      let length = this.items.length;
 | 
			
		||||
      const oldIndex = this.activeIndex;
 | 
			
		||||
      if (index < 0) {
 | 
			
		||||
        this.activeIndex = length - 1;
 | 
			
		||||
        this.activeIndex = this.loop ? length - 1 : 0;
 | 
			
		||||
      } else if (index >= length) {
 | 
			
		||||
        this.activeIndex = 0;
 | 
			
		||||
        this.activeIndex = this.loop ? 0 : length - 1;
 | 
			
		||||
      } else {
 | 
			
		||||
        this.activeIndex = index;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue