美文网首页
小程序下拉列表

小程序下拉列表

作者: 九旬大爷的梦 | 来源:发表于2020-03-10 17:12 被阅读0次

示例

阿斯蒂芬.gif

wxml:

<view class="wrap">
  <view class="item" wx:for="{{allList}}" wx:key="index">
    <view class="h1" bindtap="change" data-i="{{index}}">日期 {{item.date}}</view>
    <view class="todolist">
      <view class="{{item.status ? 'td-box-show' : 'td-box-hide' }}">
        <view wx:for="{{item.list}}" wx:for-item="desItem" wx:for-key="dexIndex" wx:key="dexIndex" class="td-item">{{desItem}}</view>
      </view>
    </view> 
  </view>

  <view wx:for="{{num}}" wx:key="index" style="height:50rpx;color:#000;">{{item}}</view>
</view>

css:

.wrap {
  padding: 0 20rpx;
}

.item {
  height: auto;
  overflow: hidden;
  position: relative;
}

.todolist {
  padding-top: 30rpx;
  height: auto;
  overflow: hidden;
  position: relative;
}

.td-item {
  position: relative;
  transform: translateY(-50%);
  transition: 0.3s;
}

.td-box-hide {
  height: 0;
  position: relative;
  transform: translateY(-50%);
  transition: 0.3s;
  overflow: hidden;
}

.td-box-show {
  transition: 0.3s;
  opacity: 1;
  transform: translateY(0);
}

js:

 data: {
    num: [],
    prveIndex: -1,
    allList: [{
      status: false,
      date: '2020-03-09',
      list: ['买票', '吃饭', '玩', '游泳', '爬山']
    }, {
      status: false,
      date: '2020-03-09',
      list: ['买票', '吃饭', '玩', '游泳', '爬山']
    }, ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    for (let i = 0; i < 1000; i++) {
      let num = this.data.num;
      num.push(i)
      this.setData({
        num
      })
    }
  },
  change(e) {
    let i = e.currentTarget.dataset.i;
    let currentItem = 'allList[' + i + '].status';
    if (this.data.prveIndex == -1) {
      //上一个不存在,显示当前
      this.setData({
        [currentItem]: !this.data.allList[i].status,
        prveIndex: i
      })
    } else if (i == this.data.prveIndex) {
      // 重复点击同一个的时候
      this.setData({
        [currentItem]: !this.data.allList[i].status,
      })
    } else {
      // 如果上一个存在 就关闭上一个 显示当前
      let prveItem = 'allList[' + this.data.prveIndex + '].status';
      this.setData({
        [currentItem]: !this.data.allList[i].status,
        [prveItem]: false,
        prveIndex: i
      })
    }
  },

相关文章

网友评论

      本文标题:小程序下拉列表

      本文链接:https://www.haomeiwen.com/subject/cibwdhtx.html