media-carousel.wxml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <!--components/media-carousel/media-carousel.wxml-->
  2. <view class="media-carousel">
  3. <swiper
  4. class="carousel-swiper"
  5. indicator-dots="{{showIndicator}}"
  6. indicator-color="{{indicatorColor}}"
  7. indicator-active-color="{{indicatorActiveColor}}"
  8. autoplay="{{autoplay}}"
  9. interval="{{interval}}"
  10. duration="{{duration}}"
  11. circular="{{circular}}"
  12. >
  13. <swiper-item wx:for="{{mediaList}}" wx:key="index" class="carousel-item">
  14. <!-- 图片轮播 -->
  15. <view wx:if="{{item.type === 'image'}}" class="image-container">
  16. <image
  17. src="{{item.src}}"
  18. mode="aspectFit"
  19. class="carousel-image"
  20. bind:load="onImageLoad"
  21. bind:error="onImageError"
  22. data-index="{{index}}"
  23. />
  24. <view wx:if="{{item.title}}" class="image-title">{{item.title}}</view>
  25. </view>
  26. <!-- 视频轮播 -->
  27. <view wx:if="{{item.type === 'video'}}" class="video-container">
  28. <video
  29. src="{{item.src}}"
  30. class="carousel-video"
  31. poster="{{item.poster}}"
  32. show-center-play-btn="{{true}}"
  33. show-play-btn="{{true}}"
  34. controls="{{true}}"
  35. object-fit="cover"
  36. autoplay="{{true}}"
  37. loop="{{true}}"
  38. muted="{{true}}"
  39. bind:error="onVideoError"
  40. data-index="{{index}}"
  41. />
  42. <view wx:if="{{item.title}}" class="video-title">{{item.title}}</view>
  43. </view>
  44. </swiper-item>
  45. </swiper>
  46. </view>