1. 程式人生 > >小程式下拉列表框選單

小程式下拉列表框選單

小程式下拉列表框選單

<view class='top'>
  <view class='top-text'> 選擇班別</view>
  <!-- 下拉框 -->
  <view class='top-selected' bindtap='bindShowMsg'>
    <text>{{grade_name}}</text>
    <image src='/images/xia.png'></image>
  </view>
  <!-- 下拉需要顯示的列表 -->
  <view class="select_box" wx:if="{{select}}">
    <view wx:for="{{grades}}" wx:key="unique">
      <view class="select_one" bindtap="mySelect" data-name="{{item}}">{{item}}</view>
    </view>
  </view>
</view>
/* 頂部 */

.top {
  width: 100vw;
  height: 80rpx;
  padding: 0 20rpx;
  line-height: 80rpx;
  font-size: 34rpx;
  border-bottom: 1px solid #000;
}

.top-text {
  float: left;
}

/* 下拉框 */

.top-selected {
  width: 50%;
  display: flex;
  float: right;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #ccc;
  padding: 0 10rpx;
  font-size: 30rpx;
}

/* 下拉內容 */

.select_box {
  background-color: #fff;
  padding: 0 20rpx;
  width: 50%;
  float: right;
  position: relative;
  right: 0;
  z-index: 1;
  overflow: hidden;
  text-align: left;
  animation: myfirst 0.5s;
  font-size: 30rpx;
}

.select_one {
  padding-left: 20rpx;
  width: 100%;
  height: 60rpx;
  position: relative;
  line-height: 60rpx;
  border-bottom: 1px solid #ccc;
}

/* 下拉過度效果 */

@keyframes myfirst {
  from {
    height: 0rpx;
  }

  to {
    height: 210rpx;
  }
}

/* 下拉圖示 */

.top-selected image {
  height: 50rpx;
  width: 50rpx;
  position: absolute;
  right: 0rpx;
  top: 20rpx;
}
// pages/zy/zy.js
Page({
  /**
   * 頁面的初始資料
   */
  data: {
    select: false,
    grade_name: '--請選擇--',
    grades: ['1班', '2班', '3班', ]
  },
  bindShowMsg() {
    this.setData({
      select: !this.data.select
    })
  },
  mySelect(e) {
    console.log(e)
    var name = e.currentTarget.dataset.name
    this.setData({
      grade_name: name,
      select: false
    })
  },
  /**
   * 生命週期函式--監聽頁面載入
   */
  onLoad: function(options) {

  },

  /**
   * 生命週期函式--監聽頁面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命週期函式--監聽頁面顯示
   */
  onShow: function() {

  },

  /**
   * 生命週期函式--監聽頁面隱藏
   */
  onHide: function() {

  },

  /**
   * 生命週期函式--監聽頁面解除安裝
   */
  onUnload: function() {

  },

  /**
   * 頁面相關事件處理函式--監聽使用者下拉動作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 頁面上拉觸底事件的處理函式
   */
  onReachBottom: function() {

  },

  /**
   * 使用者點選右上角分享
   */
  onShareAppMessage: function() {

  }
})

效果