<view class="banner">
<scroll-view scroll-x="true" scroll-with-animation="true" scroll-into-view="nav-{{select > 0 ? select -1 : select}}">
<view wx:for="{{sortList}}" wx:for-index="index" wx:key="index" id="nav-{{index+1}}"
class="sort {{index == select ? 'choose' : ''}}" data-index='{{index}}' data-id="{{item.id}}" bindtap="getSelect">
{{item.name}}
<view class="line" wx:if="{{index == select}}"></view>
</view>
</scroll-view>
</view>
.banner {
position: sticky;
top: 0;
width: 100%;
height: 80rpx;
background: #fff;
white-space: nowrap;
display: flex;
align-items: center;
padding: 0 30rpx;
box-sizing: border-box;
border-top: 1rpx solid #f5f5f5;
border-bottom: 1rpx solid #f5f5f5;
}
.banner scroll-view {
height: 100%;
}
.sort {
position: relative;
display: inline-block;
font-size: 32rpx;
margin-right: 70rpx;
line-height: 80rpx;
height: 100%;
}
scroll-view .sort:last-child {
margin-right: 0rpx;
}
.choose {
color: #16BA98;
}
.line {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 5rpx;
border-radius: 10rpx;
background: #16BA98;
animation: spread .3s;
}
@keyframes spread {
0% {
width: 0;
left: 50%;
}
100% {
width: 100%;
left: 0;
}
}
const app = getApp()
Page({
data: {
select: 0,
sortList: [{
name: '电视剧'
},
{
name: '电影'
},
{
name: '综艺'
},
{
name: '少儿'
},
{
name: '动漫'
},
{
name: 'NBA'
},
{
name: '体育'
},
{
name: '财经'
},
{
name: '历史'
},
]
},
getSelect(e) {
var index = e.currentTarget.dataset.index
this.setData({
select: index
})
},
})