index.wxml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <view class="card-carousel" style="width:100%;">
  2. <swiper class="carousel-swiper" current="{{current}}" circular="true" previous-margin="{{paddingLR}}px" next-margin="{{paddingLR}}px" duration="{{duration}}" style="height: {{centerHeight}}px;" bindchange="onSwiperChange">
  3. <block wx:for="{{list}}" wx:key="index" wx:for-index="index" wx:for-item="item">
  4. <swiper-item>
  5. <view class="slide {{current === index ? 'active' : 'inactive'}}" data-index="{{index}}" bindtap="onSlideTap" style="height: {{centerHeight}}px;">
  6. <!-- 导航器容器(仅当前项且有URL时显示) -->
  7. <view wx:if="{{item.url && useNavigator}}" class="card {{current === index ? 'active-card' : 'side-card'}}" data-index="{{index}}" bindtap="{{current === index ? 'onOnlineExhibitionTap' : ''}}">
  8. <image class="card-image" src="{{item.image}}" mode="aspectFill" style="height: {{current === index ? centerHeight : sideHeight}}px;" lazy-load="{{false}}"></image>
  9. <!-- 在线观展覆盖层(仅当前项显示) -->
  10. <view class="online-exhibition {{current === index ? 'show' : 'hide'}}">
  11. <image class="online-icon" src="{{onlineIcon}}" mode="aspectFit"></image>
  12. <text class="online-text">线上观展</text>
  13. </view>
  14. <!-- 遮罩层(非当前项显示) -->
  15. <view class="mask {{current === index ? 'hide' : 'show'}}"></view>
  16. </view>
  17. <!-- 普通视图容器(无URL时使用) -->
  18. <view wx:else class="card {{current === index ? 'active-card' : 'side-card'}}" data-index="{{index}}" catchtap="{{current === index ? 'onCurrentTap' : ''}}">
  19. <image class="card-image" src="{{item.image}}" mode="aspectFill" style="height: {{current === index ? centerHeight : sideHeight}}px;" lazy-load="{{false}}"></image>
  20. <!-- 遮罩层(非当前项显示) -->
  21. <view class="mask {{current === index ? 'hide' : 'show'}}"></view>
  22. </view>
  23. </view>
  24. </swiper-item>
  25. </block>
  26. </swiper>
  27. <view class="indicators" wx:if="{{showIndicators && list.length > 1}}" style="bottom: 8px;">
  28. <block wx:for="{{list}}" wx:key="i" wx:for-index="i">
  29. <view class="dot {{current === i ? 'active' : ''}}" data-index="{{i}}" catchtap="onDotTap"></view>
  30. </block>
  31. </view>
  32. </view>