| <template> | 
|     <view class="img" :style="{ opacity: opacity, zIndex: zindex }"> | 
|         <view class="img_content"> | 
|             <view class="img_content_tu"> | 
|                 <image class="left" src="@/static/ic_left@2x.png" mode="widthFix" @click="jian"></image> | 
|                 <view class="img_content_tu_nr"> | 
|                     <swiper style="width: 100%; height: 100%;" @change="handlechange" :current="mycurrent" :indicator-dots="false"  :circular="true" :interval="1000" :duration="1000"> | 
|                         <swiper-item v-for="(item,index) in imgList" :key="index"> | 
|                             <view :class="['swiper-item',index == mycurrent ? 'active' : '']"> | 
|                                 <image :src="item" style="width: 100%;height: 100%;" mode="aspectFit" /> | 
|                             </view> | 
|                         </swiper-item> | 
|                     </swiper> | 
|                 </view> | 
|                 <image class="right" src="@/static/ic_right@2x.png" mode="widthFix" @click="add"></image> | 
|             </view> | 
|             <view class="img_content_close"> | 
|                 <image src="@/static/ic_close@2x.png" mode="widthFix" @click="close"></image> | 
|             </view> | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     export default { | 
|         data() { | 
|             return { | 
|                 opacity: 0, | 
|                 zindex: '-1', | 
|                 mycurrent: 0 | 
|             } | 
|         }, | 
|         props: { | 
|             imgList: { | 
|                 type: Array, | 
|                 default: () => [] | 
|             } | 
|         }, | 
|         methods: { | 
|             add() { | 
|                 if (this.imgList.length - 1 === this.mycurrent) return | 
|                 this.mycurrent++ | 
|             }, | 
|             jian() { | 
|                 if (this.mycurrent === 0) return | 
|                 this.mycurrent-- | 
|             }, | 
|             handlechange(e){ | 
|                 this.mycurrent=e.detail.current | 
|             }, | 
|             open(i) { | 
|                 this.mycurrent = i | 
|                 this.zindex = 3 | 
|                 this.opacity = 1 | 
|             }, | 
|             close() { | 
|                 this.zindex = '-1' | 
|                 this.opacity = 0 | 
|             } | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .img { | 
|         width: 100vw; | 
|         height: 100vh; | 
|         background: rgba(0,0,0,0.4); | 
|         position: fixed; | 
|         transition: .2s; | 
|         top: 0; | 
|         left: 0; | 
|         display: flex; | 
|         align-items: center; | 
|         justify-content: center; | 
|          | 
|         .img_content { | 
|             display: flex; | 
|             flex-direction: column; | 
|             .img_content_tu { | 
|                 display: flex; | 
|                 align-items: center; | 
|                 .img_content_tu_nr { | 
|                     width: 600px; | 
|                     height: 600px; | 
|                     padding: 30px; | 
|                     box-sizing: border-box; | 
|                     border-radius: 8px; | 
|                     margin: 0 32px; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     flex-wrap: nowrap; | 
|                     .swiper-item{ | 
|                         width: 100%; | 
|                         border-radius: 30rpx; | 
|                         overflow: hidden; | 
|                         // 像这种多张轮播图同时出现在一屏的情况下就不要指定width了,不然你会发现previous-margin和 next-margin会出现想不到的效果 | 
|                         // 如果想要设置宽每一张轮播图的宽度,只需要设置previous-margin和next-margin就可以了,想要设置高度直接改下面的height就可以了 | 
|                         // width: 450rpx; | 
|                         height: 100%; | 
|                         // transform: scale(1); | 
|                         // transition: all 0.5s ease; | 
|                         text-align: center; | 
|                         // transition: all 0.5s ease-in-out; | 
|                     } | 
|                     .img_content_tu_nr_item { | 
|                         width: 100%; | 
|                         height: 600px; | 
|                         image { | 
|                             width: 100%; | 
|                             height: 100%; | 
|                         } | 
|                     } | 
|                 } | 
|                 .left { | 
|                     width: 80px; | 
|                     height: 80px; | 
|                     cursor: pointer; | 
|                 } | 
|                 .right { | 
|                     width: 80px; | 
|                     height: 80px; | 
|                     cursor: pointer; | 
|                 } | 
|             } | 
|             .img_content_close { | 
|                 width: 100%; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: center; | 
|                 margin-top: 40px; | 
|                 image { | 
|                     width: 60px; | 
|                     height: 60px; | 
|                     cursor: pointer; | 
|                 } | 
|             } | 
|         } | 
|     } | 
| </style> |