微信小程序(组件--表单:滑块、开关、选择器)

表单组件

(1)表单组件—slider滑动组件

属性类型默认值是否必填作用
minnumber0最小值
maxnumber100最大值
show-valuebooleanfalse是否显示当前 value
stepnumber1步长,取值必须大于 0,并且可被(max - min)整除
valuenumber0当前取值
minnumber0最小值
maxnumber100最大值
show-valuebooleanfalse是否显示当前 value
<slider min="10" max="60" show-value="true"></slider>

在这里插入图片描述

stepnumber1步长,取值必须大于 0,并且可被(max - min)整除
<!-- 拖动滑块时,两个两个的开始增长 -->
<slider min="10" max="60" show-value="true" step="2"></slider>
valuenumber0当前取值
<slider min="10" max="60" show-value="true" step="2" value="36"></slider>

在这里插入图片描述

颜色类属性
属性类型默认值是否必填作用
backgroundColorcolor#e9e9e9背景条的颜色
activeColorcolor#1aad19已选择的颜色
滑块属性
属性类型默认值是否必填作用
block-sizenumber28滑块的大小,取值范围为 12 - 28
block-colorcolor#ffffff滑块的颜色
拖动事件
属性类型默认值是否必填作用
bindchangefunction完成一次拖动后触发的事件,event.detail = {value}
bindchangingfunction拖动过程中触发的事件,event.detail = {value}
bindchangefunction完成一次拖动后触发的事件,event.detail = {value}
<slider min="10" max="60" show-value="true" step="2" value="36" 
bindchange="bindchangeFn"></slider>
/**完成一次拖动后触发 */
  bindchangeFn(option){
    console.log(option)
  },

在这里插入图片描述
在这里插入图片描述

bindchangingfunction拖动过程中触发的事件,event.detail = {value}
在这里插入图片描述
(2)表单组件—switch开关组件
属性类型默认值是否必填作用
checkedbooleanfalse是否选中
disabledbooleanfalse是否禁用
typestringswitch样式,有效值:switch, checkbox
colorstring#04BE02switch 的颜色,同 css 的 color
bindchangefunctionchecked 改变时触发 change 事件,event.detail={ value}
开关1<switch checked="true"></switch>
开关2<switch type="checkbox" bindchange="swithChangeFn"></switch>
/**checked改变时触发 */
  swithChangeFn(option){
    console.log(option)
  },

在这里插入图片描述
在这里插入图片描述

注意:
switch类型切换时在iOS自带振动反馈,可在系统设置 -> 声音与触感 -> 系统触感反馈中关闭

信息认证

接下来介绍的滚动选择器在部分场景经常遇到,有时需要验证个人信息,所以先写个“认证页面”
在这里插入图片描述

信息认证页面

<view class="checkArea">
  <form>
    <label wx:for="{{infoList}}" wx:key="index">
      <view>{{item.name}}</view>
      <input placeholder="{{item.place}}"
      type="{{item.type}}"
      name="{{item.value}}"></input>
    </label>
  </form>
</view>
.checkArea{
  width: 100%;
  padding: 20rpx 5%;
  height: auto;
  box-sizing: border-box;
}
.checkArea form{
  width: 100%;
  height: 100%;
  display: block;
}
.checkArea label{
  height: 80rpx;
  width: 100%;
  display: flex;
  align-items: center;
  box-shadow: 0 1px 1 rgba(0, 0, 0, 0.1);
  margin: 30rpx;
  font-size: 30rpx;
}
.checkArea label view{
  width: 150rpx;
}
.checkArea label input{
  margin-left: 20rpx;
}
data: {
    infoList:[
      { name: '姓名', place: '请输入姓名', value: 'name', type: 'text' },
      { name: '手机号', place: '请输入手机号码', value: 'phone', type: 'number' },
      { name: '身份证号', place: '请输入身份证号码', value: 'idcard', type: 'idcard' },
      { name: '邮箱', place: '请输入邮箱地址', value: 'email', type: 'digit' }
    ]
  },

在这里插入图片描述

表单组件

(3)表单组件—picker滚动选择器

属性类型默认值是否必填作用
modestringselector选择器类型
disabledbooleanfalse是否禁用
bindcancelfunction取消选择时触发
mode取值
类型
selector普通选择器
multiSelector多列选择器
time时间选择器
date日期选择器
region省市区选择器

注意:除了之前的通用属性外,对于不同的mode,picker拥有不同的属性

(3)表单组件—普通选择器mode = selector

属性类型默认值作用
rangearray/object array[]mode 为 selector 或 multiSelector 时,range 有效
range-keystring当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容
valuenumber0表示选择了 range 中第几个(下标从 0 开始)
bindchangefunctionvalue 改变时触发 change 事件,event.detail = {value}
bindcancelfunction取消选择时触发
<view class="checkArea">
  <form>
    <label wx:for="{{infoList}}" wx:key="index">
      <view>{{item.name}}</view>
      <input placeholder="{{item.place}}"
      type="{{item.type}}"
      name="{{item.value}}"></input>
    </label>
    <label>
      <view>国籍</view>
      <picker class="country"
      mode="selector"
      value="{{countryIndex}}"
      bindchange="bindPickerChange"
      range="{{countryList}}">
        {{countryList[countryIndex]}}
      </picker>
    </label>
  </form>
</view>
/**国籍 */
.country{
  margin-left: 20rpx;
  flex-grow: 1;
}
  data: {
  ryList: ['美国', '中国', '俄罗斯', '日本'],
    countryIndex:0
  },
  /**普通选择器--确定操作 */
  bindPickerChange(option){
    console.log(option.detail.value)
    this.setData({
      countryIndex:option.detail.value
    })
  },

在这里插入图片描述
接下来将range改为object array,利用range-key来指定 Object 中 key 的值作为选择器显示内容
在这里插入图片描述
在这里插入图片描述

range-key中的值可以为两种形式
①range-key=“{{name}}”
②range-key=“name”

(3)表单组件—多列选择器mode = multiSelector

属性类型默认值是否必填作用
rangearray/object array[]mode 为 selector 或 multiSelector 时,range 有效
range-keystring当 range 是一个 Object Array 时,通过 range-key 来指定 Object 中 key 的值作为选择器显示内容
valuenumber0表示选择了 range 中第几个(下标从 0 开始)
bindchangefunctionvalue 改变时触发 change 事件,event.detail = {value}
bindcolumnchangefunction列改变时触发

在这里插入图片描述

参考官方文档修改即可

(4)表单组件—日期选择器mode = date

在这里插入图片描述

(5)表单组件—省市区选择器mode = region

在这里插入图片描述

(6)表单组件—picker-view嵌入组件

  • picker-view为嵌入页面的滚动选择器。其中只可放置 picker-view-column组件,其它节点不会显示
  • picker-view-column为滚动选择器子项。仅可放置于picker-view中,其孩子节点的高度会自动设置成与picker-view的选中框的高度一致
  • 详情参见官网文档,简单了解即可

导航组件

导航组件常用的navigator,小编之前写过相关文章
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
微信小程序提供的组件中,Grid(网格)是一种非常强大和灵活的布局组件,可以实现多种不同的网格视图。其中一种常见的应用场景是行和列同时动,从而使用户可以快速浏览并选择不同的内容。 要实现这种功能,首先需要在 Grid 组件中设置 scroll-x 和 scroll-y 两个属性为 true,以允许同时动水平和垂直方向。同时,还需要设置每个网格项(即每个元格)的宽度和高度,以确保它们能够按照预期的方式排列在网格中。 具体的实现方法可以分为以下几个步骤: 1. 在 wxml 文件中添加 Grid 组件,并设置 scroll-x 和 scroll-y 属性为 true。 ```html <view class="grid-container"> <grid scroll-x scroll-y> <!-- 网格项内容 --> </grid> </view> ``` 2. 在样式中设置网格容的高度和宽度,以及网格项的宽度和高度。 ```css .grid-container { width: 100%; height: 500rpx; } .grid-item { width: 33.3%; height: 200rpx; } ``` 3. 在 js 文件中动态设置网格项的内容和数量。 ```js Page({ data: { gridData: [] }, onLoad: function () { // 从服务获取网格项数据 // ... // 将数据存储到 data 中 this.setData({ gridData: [ { text: '网格项1' }, { text: '网格项2' }, { text: '网格项3' }, { text: '网格项4' }, { text: '网格项5' }, // ... ] }); } }) ``` 4. 在 wxml 文件中使用 wx:for 循环遍历网格数据,并将网格项的文本内容显示出来。 ```html <view class="grid-container"> <grid scroll-x scroll-y> <block wx:for="{{ gridData }}" wx:key="{{ index }}"> <grid-item class="grid-item">{{ item.text }}</grid-item> </block> </grid> </view> ``` 综上所述,通过上述步骤,即可实现微信小程序组件 Grid 的行和列同时动的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值