Carousel.vue 2.1 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.hrefUrl" target="_blank">
  7. <img :src="banner.pictureUrl">
  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. export default {
  19. name: 'carousel',
  20. data () {
  21. return {
  22. activeSlide: 0,
  23. swiperOption: {
  24. autoplay: 5000,
  25. initialSlide: 0,
  26. loop: true,
  27. effect: 'fade',
  28. lazyLoading: true,
  29. // 解决点击分页器后图片就不能轮播的问题
  30. autoplayDisableOnInteraction: false,
  31. pagination: '.swiper-pagination',
  32. paginationClickable: true,
  33. paginationElement: 'li',
  34. prevButton: '.swiper-button-prev',
  35. nextButton: '.swiper-button-next'
  36. }
  37. // banners: {}
  38. }
  39. },
  40. // mounted () {
  41. // this.$http.get('/api/carousel/home%20page%20banner')
  42. // .then(response => {
  43. // this.banners = response.data
  44. // this.x++
  45. // })
  46. // }
  47. computed: {
  48. banners () {
  49. let banner = this.$store.state.carousel.banners
  50. banner.data.sort(function (a, b) {
  51. return a.orderNumber - b.orderNumber
  52. })
  53. return banner.data
  54. }
  55. }
  56. }
  57. </script>
  58. <style lang="scss" scoped>
  59. @import '~assets/scss/variables';
  60. $carousel_width: 668px;
  61. $carousel_height: 358px;
  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: $carousel_width;
  73. height: $carousel_height;
  74. }
  75. }
  76. }
  77. }
  78. </style>