
index.wxml
<view class="container">
<view class="swiper-tab">
<scroll-view scroll-x="true" show-scrollbar="false" scroll-with-animation="true" scroll-left="{{navScrollLeft}}" style="width: 100%;white-space: nowrap;">
<block wx:for="{{provList}}" wx:key="i">
<view class="swiper-tab-list {{currentTab==index ? 'on' : ''}}" data-current="{{index}}" bindtap="swichNav">{{item.name}}</view>
</block>
</scroll-view>
</view>
<swiper current="{{currentTab}}" class="swiper-box" duration="300" bindchange="bindChange" style="height: {{tabsheight}};">
<block wx:for="{{cityList}}" wx:for-item="city" wx:key="n">
<swiper-item>
<view class="list list{{index}}">
<block wx:for="{{city}}" wx:key="u">
<view class="city-item">
<image class="img" src="{{item.img}}"></image>
<view class="text">{{item.city}}</view>
</view>
</block>
</view>
</swiper-item>
</block>
</swiper>
<view>底部</view>
</view>
index.js
Page({
data: {
currentTab:0,
tabsheight:'450px',
provList:[
{"name":"江苏"},
{"name":"浙江"},
{"name":"上海"},
{"name":"河南"},
{"name":"河北"},
{"name":"重庆"},
{"name":"天津"},
{"name":"广东"},
],
cityList:[
[{"img":"/imgs/default.jpg","city":"南京"},
{"img":"/imgs/default.jpg","city":"苏州"},
{"img":"/imgs/default.jpg","city":"南通"},
{"img":"/imgs/default.jpg","city":"无锡"}],
[{"img":"/imgs/default.jpg","city":"杭州"},
{"img":"/imgs/default.jpg","city":"宁波"},
{"img":"/imgs/default.jpg","city":"温州"}],
[{"img":"/imgs/default.jpg","city":"上海"}],
[{"img":"/imgs/default.jpg","city":"郑州"},
{"img":"/imgs/default.jpg","city":"开封"},
{"img":"/imgs/default.jpg","city":"洛阳"},
{"img":"/imgs/default.jpg","city":"周口"}],
[{"img":"/imgs/default.jpg","city":"石家庄"},
{"img":"/imgs/default.jpg","city":"唐山"},
{"img":"/imgs/default.jpg","city":"秦皇岛"}],
[{"img":"/imgs/default.jpg","city":"重庆"}],
[{"img":"/imgs/default.jpg","city":"天津"}],
[{"img":"/imgs/default.jpg","city":"广州"},
{"img":"/imgs/default.jpg","city":"深圳"}]
]
},
tabsHeight(element){
let that = this;
let query = wx.createSelectorQuery();
query.select(element).boundingClientRect(function(rect){
that.setData({
tabsheight:rect.height + 'px'
});
}).exec();
},
swichNav: function( e ) {
var that = this;
if( this.data.currentTab === e.target.dataset.current ) {
return false;
} else {
that.setData( {
currentTab: e.target.dataset.current,
navScrollLeft:e.target.dataset.current >= 4 ? ((e.target.dataset.current) * 60) : 0
})
}
that.tabsHeight('.list'+e.target.dataset.current);
},
bindChange: function( e ) {
var that = this;
that.setData( {
currentTab: e.detail.current,
navScrollLeft:e.detail.current >= 4 ? ((e.detail.current) * 60) : 0
});
that.tabsHeight('.list'+e.detail.current);
},
})
index.wxss
.swiper-tab{
width: 100%;
text-align: center;
line-height: 80rpx;
}
.swiper-tab-list{
font-size: 30rpx;
display: inline-block;
min-width: 18%;
max-width: 18%;
margin: 0 1%;
}
.on{ color: black;
font-weight: bold;
border-bottom: 4rpx solid black;
}
.swiper-box{
display: block;
height: 700px;
width: 100%;
margin-top: 10px;
}
.city-item{
width: 100%;
display: flex;
flex-flow: row nowrap;
margin-bottom: 10px;
}
.img{
width: 40%;
height: 100px;
}
.text{
width: 60%;
display: flex;
justify-content: center;
align-items: center;
font-size: 24px;
border: 1px solid #ddd;
box-sizing: border-box;
}
来源:https://blog.csdn.net/weixin_43976056/article/details/121579534