Carousel.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div class="carousel">
  3. <div v-swiper:mySwiper="swiperOption">
  4. <div class="swiper-wrapper">
  5. <div class="swiper-slide" v-for="banner in banners">
  6. <a :href="banner.detailsLink" target="_blank">
  7. <img :src="banner.pictureLink">
  8. </a>
  9. </div>
  10. </div>
  11. <div class="swiper-pagination swiper-pagination-bullets"></div>
  12. <div class="swiper-button-prev"><i class="iconfont icon-arrow-left"></i></div>
  13. <div class="swiper-button-next"><i class="iconfont icon-arrow-right"></i></div>
  14. </div>
  15. </div>
  16. </template>
  17. <script>
  18. import { carousel } from '~utils/mixin'
  19. export default {
  20. name: 'carousel',
  21. data () {
  22. return {
  23. activeSlide: 0
  24. }
  25. },
  26. mixins: [carousel],
  27. computed: {
  28. storeType () {
  29. this.activeSlide = 0
  30. return this.$store.state.provider.stores.storeType.data
  31. },
  32. banners () {
  33. if (this.$store.state.carousel.banners) {
  34. return this.$store.state.carousel.banners.data.data
  35. } else {
  36. return ''
  37. }
  38. },
  39. swiperOption () {
  40. return {
  41. autoplay: 5000,
  42. initialSlide: 0,
  43. loop: true,
  44. effect: this.effect,
  45. lazyLoading: true,
  46. // 解决点击分页器后图片就不能轮播的问题
  47. autoplayDisableOnInteraction: false,
  48. pagination: '.swiper-pagination',
  49. paginationClickable: true,
  50. paginationElement: 'li',
  51. prevButton: '.swiper-button-prev',
  52. nextButton: '.swiper-button-next'
  53. }
  54. }
  55. }
  56. }
  57. </script>
  58. <style lang="scss" scoped>
  59. @import '~assets/scss/variables';
  60. $carousel_width: 955px;
  61. $carousel_height: 400px;
  62. .carousel {
  63. width: $carousel_width;
  64. height: $carousel_height;
  65. transition: background-color .3s;
  66. position: relative;
  67. overflow: hidden;
  68. .swiper-wrapper {
  69. .swiper-slide {
  70. img {
  71. display: block;
  72. width: 955px;
  73. height: $carousel_height;
  74. }
  75. }
  76. }
  77. }
  78. </style>