6 changed files with 192 additions and 34 deletions
@ -0,0 +1,136 @@ |
|||||
|
<template> |
||||
|
<view> |
||||
|
<view class="top-swiper"> |
||||
|
<view class="bg"> |
||||
|
<view class="placeholder"></view> |
||||
|
<view class="image"> |
||||
|
<image :src="swiper.list[swiper.index]" mode="aspectFill"></image> |
||||
|
</view> |
||||
|
</view> |
||||
|
<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 swiper.list" :key="index"> |
||||
|
<image class='le-img' :src='item' :class="{'le-active':swiper.index == index}"></image> |
||||
|
</swiper-item> |
||||
|
</swiper> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export 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; |
||||
|
}, |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
.top-swiper{ |
||||
|
margin-bottom: 30rpx; |
||||
|
|
||||
|
.bg{ |
||||
|
padding-top: var(--status-bar-height); |
||||
|
box-sizing: content-box; |
||||
|
width: 100%; |
||||
|
position: relative; |
||||
|
|
||||
|
.placeholder{ |
||||
|
box-sizing: content-box; |
||||
|
padding-top: 600rpx; |
||||
|
height: 44px; |
||||
|
} |
||||
|
|
||||
|
.image{ |
||||
|
box-sizing: content-box; |
||||
|
position: absolute; |
||||
|
z-index: 1; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
overflow: hidden; |
||||
|
|
||||
|
&::after{ |
||||
|
content: ''; |
||||
|
position: absolute; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
z-index: 1; |
||||
|
bottom: 0; |
||||
|
left: 0; |
||||
|
height: 65%; |
||||
|
background-image: linear-gradient(to bottom ,transparent, #FFF); |
||||
|
} |
||||
|
|
||||
|
> image{ |
||||
|
position: absolute; |
||||
|
box-sizing: content-box; |
||||
|
padding: 60px; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
width: 100%; |
||||
|
height: 80%; |
||||
|
top: -60px; |
||||
|
left: -60px; |
||||
|
filter: blur(50px); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.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: 4px; |
||||
|
|
||||
|
&.le-active { |
||||
|
transform: scale(1); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
Loading…
Reference in new issue