liuxiaolong
2019-05-06 62dfa881aca867756c9ba8ddd3aa6895d95ebb06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<template>
  <div class="swiper pr">
    <swiper :options="swiperOption" ref="mySwiper">
      <!-- slides -->
      <swiper-slide v-for="(slide, index) in data" :style="slideWidth?`width:${slideWidth};`:''" :key="index">
        <slot :data="slide"></slot>
      </swiper-slide>
      <!-- Optional controls -->
      <div class="swiper-pagination" v-if="isShowPagination" slot="pagination"></div>
 
      <!-- <div class="swiper-scrollbar"   slot="scrollbar"></div> -->
 
    </swiper>
    <div class="swiper-button-prev" slot="button-prev" v-if="isShowButton" @click="swiper.slidePrev()">
        <i class="fa fa-chevron-left"></i>
      </div>
      <div class="swiper-button-next" slot="button-next" v-if="isShowButton" @click="swiper.slideNext()">
        <i class="fa fa-chevron-right"></i>
      </div>
    <div class="msg">
      <slot name="msg"/>
    </div>
  </div>
</template>
<script>
import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
  components: {
    swiper,
    swiperSlide
  },
  props: {
    slideWidth: {
      default: '',
      type: String
    },
    isShowPagination: {
      default: false,
      type: Boolean
    },
    isShowButton: {
      default: true,
      type: Boolean
    },
    data: {
      default: () => [],
      type: Array
    }
  },
  data() {
    return {
      swiperOption: {
        pagination: {
          el: '.swiper-pagination',
          clickable: true
        },
        slidesPerView: 'auto',
        spaceBetween: 10
      }
    }
  },
  computed: {
    swiper() {
      return this.$refs.mySwiper.swiper
    }
  },
  mounted() {
    // current swiper instance
    // 然后你就可以使用当前上下文内的swiper对象去做你想做的事了
    console.log('this is current swiper instance object', this.swiper)
    // this.swiper.slideTo(3, 1000, false)
  }
}
</script>
<style lang="scss" scoped>
.swiper {
  .swiper-container {
    padding: 0 20px;
  }
  .swiper-button-prev,
  .swiper-button-next {
    background-image: none;
    display: none;
    i {
      font-size: 45px;
      color: #333;
    }
  }
  .swiper-button-prev {
    left: -10px;
  }
  .swiper-button-next {
    right: -10px;
  }
  &:hover .swiper-button-prev,
  &:hover .swiper-button-next {
    display: block;
  }
  .msg {
    position: absolute;
    left: 0px;
    bottom: 2px;
    width: 100%;
  }
}
</style>