123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <template>
- <view>
- <view class="top-swiper">
- <view class="box">
- <view style="height: 44px;"></view>
- <swiper class="swiper" :previous-margin="swiper.margin" :next-margin='swiper.margin' :circular="true"
- @change="swiperChange">
- <swiper-item v-for="(item,index) in card_menu" :key="index" @click="toUrl(item.url)">
- <!-- <image class='le-img' :src='item' :class="{'le-active':swiper.index == index}"></image> -->
- <view class="le-img" :class="{'le-active':swiper.index == index}">
- <view class="img_box">
- <image class="card_img" :src="item.img" mode="aspectFill"></image>
- </view>
- <view class="detail_box">
- <view class="title_box">{{item.title}}</view>
- <view class="author_box">By:{{item.author}}</view>
- </view>
- </view>
- </swiper-item>
- </swiper>
- </view>
- </view>
- </view>
- </template>
- <script>
- import Common from '../../static/js/common'
- export default {
- props: {
- card_menu: {
- type: Array,
- default: []
- }
- },
- data() {
- return {
- swiper: {
- margin: "150rpx",
- index: 0,
- list: [
- "/static/images/douyin/0.jpg",
- "/static/images/douyin/4.jpg",
- "/static/images/douyin/7.jpg",
- ]
- }
- }
- },
- components: {
- },
- mounted() {
- },
- methods: {
- //swiper滑动事件
- swiperChange: function(e) {
- this.swiper.index = e.detail.current;
- },
- toUrl(url){
- Common.navigateTo(url);
- }
- }
- }
- </script>
- <style lang="scss">
- .top-swiper {
- margin-bottom: 30rpx;
- .box {
- padding-top: var(--status-bar-height);
- box-sizing: content-box;
- position: absolute;
- z-index: 5;
- top: 0;
- left: 0;
- width: 100%;
- height: auto;
- }
- .swiper {
- height: 600rpx;
- margin: 0 20rpx;
- .le-img {
- width: 100%;
- height: 100%;
- display: block;
- transform: scale(0.9);
- transition: transform 0.3s ease-in-out 0s;
- border-radius: 10px;
- background-color: #fff;
- overflow: hidden;
- &.le-active {
- transform: scale(1);
- }
- .img_box {
- width: 100%;
- height: 65%;
- overflow: hidden;
- .card_img {
- height: 100%;
- width: 100%;
- }
- }
- .detail_box {
- width: 100%;
- height: 35%;
- overflow: hidden;
- .title_box {
- width: 100%;
- text-align: center;
- font-size: 40rpx;
- margin: 30rpx 0;
- }
- .author_box {
- width: 100%;
- text-align: center;
- font-size: 30rpx;
- position: relative;
- height: 80rpx;
- line-height: 80rpx;
- &::before {
- content: "";
- height: 1px;
- width: 150rpx;
- position: absolute;
- transform: translateX(-50%);
- left: 50%;
- top: 0;
- background: #000;
- }
- }
- }
- }
- }
- }
- </style>
|