微信小程式選項卡陣列列表單項選擇切換效果
阿新 • • 發佈:2019-02-14
這裡展示一個工作中用到的微信小程式的單選選項卡切換效果的製作方法
效果如圖:
wxml:
<view class="item" wx:for="{{data}}" wx:for-item="item" wx:for-index="idx" data-idx="{{idx}}" bindtap="chooseItem">
<view class="choosebtn {{idx==currentidx&&choose==true?'choosedbtn':'choosenobtn'}}"></view>
<text >{{idx==currentidx&&choose==true?text:textTwo}}</text>
</view>
wxss:
.item {
width: 100%;
height: 120rpx;
background: #f5f5f5;
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 20rpx;
}
.item .choosebtn {
width: 60rpx;
height: 60rpx;
border-radius : 50%;
margin-left: 40rpx;
}
.item .choosenobtn {
background: #c0c0c0;
}
.item .choosedbtn {
background: #87ceeb;
}
.item text {
margin-left: 30rpx;
}
js:
Page({
data: {
// 讓所有的選項都成為未選中狀態
choose: false,
// 用來迴圈展示的資料
data: [1, 2, 3],
text: '選中了',
textTwo: '沒選中'
},
// 點選選項卡時的js
chooseItem: function (e) {
//記錄上次點選的物件的序號
var oldidx = this.data.currentidx;
//記錄當前點選的物件的序號
var currentidx = e.currentTarget.dataset.idx;
if (oldidx == currentidx) {
var choose = this.data.choose;
this.setData({
currentidx: currentidx,
choose: !choose
})
} else {
this.setData({
currentidx: currentidx,
choose: true
});
}
}
})