• 【微信小程序】picker-view嵌入页面的滚动选择器(84/100)


    在这里插入图片描述
    UI布局如下:

    <!--pages/pickerView/pickerView.wxml-->
    <view class="selected-date">{{year}}{{month}}{{day}}{{isDaytime ? "白天" : "夜晚"}}</view>
        <picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;" value="{{value}}" bindchange="bindChange">
          <picker-view-column>
            <view wx:for="{{years}}" wx:key="{{years}}" style="line-height: 50px; text-align: center;">{{item}}</view>
          </picker-view-column>
          <picker-view-column>
            <view wx:for="{{months}}" wx:key="{{months}}" style="line-height: 50px; text-align: center;">{{item}}</view>
          </picker-view-column>
          <picker-view-column>
            <view wx:for="{{days}}" wx:key="{{days}}" style="line-height: 50px; text-align: center;">{{item}}</view>
          </picker-view-column>
          <picker-view-column>
            <view class="icon-container">
              <image class="picker-icon"  src="../../images/Daytime.png" />
            </view>
            <view class="icon-container">
              <image class="picker-icon" src="../../images/night.png" />
            </view>
          </picker-view-column>
        </picker-view>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    数据模型 & 控制器

    // pages/pickerView/pickerView.js
    const date = new Date()
    const years = []
    const months = []
    const days = []
    
    for (let i = 1990; i <= date.getFullYear(); i++) {
      years.push(i)
    }
    
    for (let i = 1; i <= 12; i++) {
      months.push(i)
    }
    
    for (let i = 1; i <= 31; i++) {
      days.push(i)
    }
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        years,
        year: date.getFullYear(),
        months,
        month: 2,
        days,
        day: 2,
        value: [9999, 1, 1],
        isDaytime: true,
      },
      bindChange(e) {
        const val = e.detail.value
        this.setData({
          year: this.data.years[val[0]],
          month: this.data.months[val[1]],
          day: this.data.days[val[2]],
          isDaytime: !val[3]
        })
      },
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad(options) {
    
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    功能描述
    嵌入页面的滚动选择器。其中只可放置 picker-view-column组件,其它节点不会显示。

    属性说明
    属性 类型 默认值 必填 说明 最低版本
    value Array. 否 数组中的数字依次表示 picker-view 内的 picker-view-column 选择的第几项(下标从 0 开始),数字大于 picker-view-column 可选项长度时,选择最后一项。 1.0.0

    indicator-style string 否 设置选择器中间选中框的样式 1.0.0

    indicator-class string 否 设置选择器中间选中框的类名 1.1.0

    mask-style string 否 设置蒙层的样式 1.5.0

    mask-class string 否 设置蒙层的类名 1.5.0

    immediate-change boolean false 否 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件。 2.21.1

    bindchange eventhandle 否 滚动选择时触发 change 事件,event.detail = {value};value为数组,表示 picker-view 内的 picker-view-column 当前选择的是第几项(下标从 0 开始) 1.0.0

    bindpickstart eventhandle 否 当滚动选择开始时候触发事件 2.3.1

    bindpickend eventhandle 否 当滚动选择结束时候触发事件 2.3.1

  • 相关阅读:
    算法题:SOJ1092: 欧几里得算法
    【数据分析实战】kaggle项目:bike sharing demand
    不解压war包替换文件
    FBA海运到美国费用一般包含哪些?
    MySQL日期时间函数
    汽车租赁系统毕业设计,汽车租赁管理系统设计与实现,毕业设计论文毕设作品参考
    设计模式:享元模式(C++实现)
    Zabbix钉钉机器人告警
    人工智能已经帮助世界各地的研究人员推断远远超出人类认知能力范围的关系
    高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目
  • 原文地址:https://blog.csdn.net/lichong951/article/details/125885349