image-viewer.wxml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <import src="../common/template/icon.wxml" />
  2. <wxs src="../common/utils.wxs" module="_" />
  3. <view
  4. wx:if="{{visible}}"
  5. id="{{classPrefix}}"
  6. class="{{classPrefix}} class {{prefix}}-class"
  7. style="{{_._style([style, customStyle, '--td-image-viewer-top: ' + maskTop + 'px'])}}"
  8. aria-modal="{{true}}"
  9. aria-role="dialog"
  10. aria-label="图片查看器"
  11. catchtouchmove="true"
  12. >
  13. <view
  14. class="{{classPrefix}}__mask"
  15. data-source="overlay"
  16. bind:tap="onClose"
  17. style="{{ 'background-color: ' + backgroundColor }}"
  18. aria-role="button"
  19. aria-label="关闭"
  20. />
  21. <block wx:if="{{images && images.length}}">
  22. <view class="{{classPrefix}}__content">
  23. <swiper
  24. class="swiper"
  25. style="{{swiperStyle[currentSwiperIndex].style}}"
  26. autoplay="{{false}}"
  27. current="{{currentSwiperIndex}}"
  28. bindchange="onSwiperChange"
  29. bindtap="onClose"
  30. tabindex="0"
  31. >
  32. <swiper-item wx:for="{{images}}" wx:key="index" class="{{classPrefix}}__preview-image">
  33. <t-image
  34. t-class="t-image--external"
  35. style="{{imagesStyle[index].style || ''}}"
  36. mode="aspectFit"
  37. lazy
  38. src="{{item}}"
  39. data-index="{{index}}"
  40. class="{{classPrefix}}__image"
  41. bindload="onImageLoadSuccess"
  42. ></t-image>
  43. </swiper-item>
  44. </swiper>
  45. </view>
  46. <view class="{{classPrefix}}__nav">
  47. <view class="{{classPrefix}}__nav-close" catch:tap="onClose" aria-role="button" aria-label="关闭">
  48. <slot name="close-btn" />
  49. <template wx:if="{{_closeBtn}}" is="icon" data="{{ ..._closeBtn }}" />
  50. </view>
  51. <view wx:if="{{showIndex}}" class="{{classPrefix}}__nav-index">
  52. {{currentSwiperIndex + 1}}/{{images.length}}
  53. </view>
  54. <view class="{{classPrefix}}__nav-delete" bind:tap="onDelete" aria-role="button" aria-label="删除">
  55. <slot name="delete-btn" />
  56. <template is="icon" data="{{ ..._deleteBtn }}" />
  57. </view>
  58. </view>
  59. </block>
  60. </view>