# WheelPicker
**Repository Path**: mirrors_singod/WheelPicker
## Basic Information
- **Project Name**: WheelPicker
- **Description**: 仿 iOS UIPickerView 的滚动选择器
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-26
- **Last Updated**: 2026-03-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WheelPicker
仿 iOS UIPickerView 的滚动选择器
## 演示
[DEMO](https://singod.github.io/WheelPicker/)
## 安装
### NPM
```sh
npm install wheel-picker --save
```
### CDN
```html
```
## 使用
```js
var frutis = ["草莓", "柠檬", "菠萝"];
var vegetables = [{
text: "番茄",
value: "tomato"
}, {
text: "蘑菇",
value: "mushroom"
}, {
text: "土豆",
value: "potato"
}];
var picker1 = new WheelPicker({
title: "最爱的水果",
data: [frutis],
onSelect: function(selected) {
alert("你选择的是:" + selected[0].text);
}
});
var picker2 = new WheelPicker({
title: "最爱的水果和蔬菜",
el: "#demo",
data: [frutis, vegetables],
value: ["柠檬", "potato"],
formatValue: function(value) {
return "你选择的分别是:" + value.join("、");
}
});
```
## 选项
| 参数 | 类型 | 默认值 | 描述 |
| ---------------- | -------- | ----------------------- | ---------------------------------------- |
| title | string | null | 标题 |
| el | element | null | 选择器对应的 input 元素 |
| hiddenInput | boolean | false | 将 el.type 设置为 hidden 并用于保存 value 值;再 clone 一个 el 元素用于显示 text 值 |
| hideOnBackdrop | boolean | false | 点击遮罩层关闭组件(相当于点击取消按钮) |
| data | array | [] | 每列的数据组成的数组 |
| value | array | [] | 每列的默认值组成的数组 |
| rows | number | 5 | 可见的行数(奇数) |
| rowHeight | number | 34 | 行高 |
| formatValue | function | `val => val.split(" ")` | 从 el 元素获取默认值 |
| parseValue | function | `val => val.join(" ")` | 保存时填充到 el 或 cloneNode 的值 |
| parseHiddenValue | function | `val => val.join(" ")` | 保存时填充到 el 的值(如果 hiddenInput 为 true) |
| onRender | function | null | 生成组件 DOM 时触发,参数为组件元素 |
| onShow | function | null | 显示组件时触发 |
| onChange | function | null | 滚动导致值变化时触发,参数为发生变化的列的索引值和选中项 |
| onSelect | function | null | 点击确定时触发,参数为条目数组 |
| onCancel | function | null | 点击取消时触发 |
## 方法
### picker.getValue([index:number])
返回值数组或指定列的值
### picker.setValue(value:array)
### picker.setValue(value:string, index:number)
设置各列的值或指定列的值
### picker.getSelectedItems()
返回选中的条目数组
### picker.getData([index:nubmer])
返回数据数组或指定列的数据
### picker.setData(data:array [, value:array])
### picker.setData(data:array, index:number [, value:string])
设置各列或指定列的数据和值
### picker.show()
显示组件
### picker.hide()
隐藏组件
### picker.enable()
启用组件
### picker.disable()
禁用组件
### picker.destory()
销毁组件
## License
[MIT](http://opensource.org/licenses/MIT)