微信小程序 Utils丨Scrollview 实现横向滑动时间选择器

运行效果

涵盖全 24 个时段,左右滑动可见其它。当前时段提示为【抢购进行中】,之前时段为【已开抢】,之后时段为【即将开始】


JS

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    that = this;
    that.setData({
      timeList: that.initTimeList(24)
    })
  },

  /**
   * 时段数组生成
   * @param itemNum 需要的时段数量
   * 
   * return 生成的完整数组
  */
  initTimeList:function(itemNum){
    // 基础判断
    if (itemNum <= 0){
      console.log(' Error From initTimeList():所需时段数不可小于等于零')
      return []
    }

    // 当前时段
    var nowTime = new Date().getHours()

    // 组装数组
    var timeList = []
    for (var t = 0; t < itemNum ; t++){
      t > 9 ? (timeList.push({ 'index': t, 'time': t + ':00', 'hint': (t == nowTime ? '抢购进行中' : (t > nowTime ? '即将开始' : '已开抢')) })) : (timeList.push({ 'index': t, 'time': '0' + t + ":00", 'hint': (t == nowTime ? '抢购进行中' : (t > nowTime ? '即将开始' : '已开抢')) }))
    }
    return timeList
  },

  /**
   * 时间选择器列表点击监听
   * @param item 被点击的item对象,包含所有信息
  */
  clickItem:function(item){
    // 列表点击事件
    console.log(item.currentTarget.dataset.item.index)
  }


WXML


  
    {{item.time}}
    {{item.hint}}
  


WXSS

.scroll-x{
    white-space:nowrap;
    display:flex;
    background: #333;
}

.view_item{
    display:inline-block;
    padding: 20rpx;
}

.view_item_time{
    width:100rpx;
    height:50rpx;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:0.8rem;
    color:#FFFFFF;
    background:#000;
}

.view_item_hint{
    width:100rpx;
    height:50rpx;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:0.5rem;
    color:#FFFFFF;
    background:#000;
}

/* 隐藏scrollbar */
::-webkit-scrollbar{
    width: 0;
    height: 0;
    color: transparent;
}

你可能感兴趣的:(微信小程序 Utils丨Scrollview 实现横向滑动时间选择器)