@tuya-miniapp/smart-ui 2.13.2-beta-0 → 2.13.2-beta-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/action-sheet/README.md +631 -0
- package/dist/battery/README.md +102 -0
- package/dist/bottom-sheet/README.md +397 -0
- package/dist/button/README.md +205 -0
- package/dist/button/index.css +1 -1
- package/dist/button/index.wxss +1 -1
- package/dist/calendar/README.md +466 -0
- package/dist/cascader/README.md +235 -0
- package/dist/cell/README.md +240 -0
- package/dist/checkbox/README.md +359 -0
- package/dist/circle/README.md +116 -0
- package/dist/col/README.md +134 -0
- package/dist/collapse/README.md +223 -0
- package/dist/common/README.md +71 -0
- package/dist/config-provider/README.md +143 -0
- package/dist/count-down/README.md +194 -0
- package/dist/custom-keyboard/README.md +119 -0
- package/dist/datetime-picker/README.md +384 -0
- package/dist/dialog/README.md +412 -0
- package/dist/divider/README.md +100 -0
- package/dist/dropdown-menu/README.md +278 -0
- package/dist/empty/README.md +101 -0
- package/dist/field/README.md +439 -0
- package/dist/grid/README.md +197 -0
- package/dist/icon/README.md +143 -0
- package/dist/image/README.md +171 -0
- package/dist/index-bar/README.md +189 -0
- package/dist/loading/README.md +86 -0
- package/dist/nav-bar/README.md +378 -0
- package/dist/normal-slider/README.md +325 -0
- package/dist/notice-bar/README.md +216 -0
- package/dist/notify/README.md +120 -0
- package/dist/overlay/README.md +132 -0
- package/dist/picker/README.md +396 -0
- package/dist/popover/README.md +249 -0
- package/dist/popup/README.md +162 -0
- package/dist/progress/README.md +99 -0
- package/dist/radio/README.md +303 -0
- package/dist/rate/README.md +176 -0
- package/dist/search/README.md +235 -0
- package/dist/sidebar/README.md +160 -0
- package/dist/skeleton/README.md +98 -0
- package/dist/slider/README.md +366 -0
- package/dist/stepper/README.md +208 -0
- package/dist/sticky/README.md +124 -0
- package/dist/swipe-cell/README.md +172 -0
- package/dist/switch/README.md +204 -0
- package/dist/tab/README.md +414 -0
- package/dist/tabbar/README.md +333 -0
- package/dist/tag/README.md +184 -0
- package/dist/toast/README.md +220 -0
- package/dist/transition/README.md +114 -0
- package/dist/tree-select/README.md +199 -0
- package/lib/action-sheet/README.md +631 -0
- package/lib/battery/README.md +102 -0
- package/lib/bottom-sheet/README.md +397 -0
- package/lib/button/README.md +205 -0
- package/lib/button/index.css +1 -1
- package/lib/button/index.wxss +1 -1
- package/lib/calendar/README.md +466 -0
- package/lib/cascader/README.md +235 -0
- package/lib/cell/README.md +240 -0
- package/lib/checkbox/README.md +359 -0
- package/lib/circle/README.md +116 -0
- package/lib/col/README.md +134 -0
- package/lib/collapse/README.md +223 -0
- package/lib/common/README.md +71 -0
- package/lib/config-provider/README.md +143 -0
- package/lib/count-down/README.md +194 -0
- package/lib/custom-keyboard/README.md +119 -0
- package/lib/datetime-picker/README.md +384 -0
- package/lib/dialog/README.md +412 -0
- package/lib/divider/README.md +100 -0
- package/lib/dropdown-menu/README.md +278 -0
- package/lib/empty/README.md +101 -0
- package/lib/field/README.md +439 -0
- package/lib/grid/README.md +197 -0
- package/lib/icon/README.md +143 -0
- package/lib/image/README.md +171 -0
- package/lib/index-bar/README.md +189 -0
- package/lib/loading/README.md +86 -0
- package/lib/nav-bar/README.md +378 -0
- package/lib/normal-slider/README.md +325 -0
- package/lib/notice-bar/README.md +216 -0
- package/lib/notify/README.md +120 -0
- package/lib/overlay/README.md +132 -0
- package/lib/picker/README.md +396 -0
- package/lib/popover/README.md +249 -0
- package/lib/popup/README.md +162 -0
- package/lib/progress/README.md +99 -0
- package/lib/radio/README.md +303 -0
- package/lib/rate/README.md +176 -0
- package/lib/search/README.md +235 -0
- package/lib/sidebar/README.md +160 -0
- package/lib/skeleton/README.md +98 -0
- package/lib/slider/README.md +366 -0
- package/lib/stepper/README.md +208 -0
- package/lib/sticky/README.md +124 -0
- package/lib/swipe-cell/README.md +172 -0
- package/lib/switch/README.md +204 -0
- package/lib/tab/README.md +414 -0
- package/lib/tabbar/README.md +333 -0
- package/lib/tag/README.md +184 -0
- package/lib/toast/README.md +220 -0
- package/lib/transition/README.md +114 -0
- package/lib/tree-select/README.md +199 -0
- package/package.json +1 -1
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 数据录入
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Slider 滑块
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
滑动输入条,用于在给定的范围内选择一个值。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"usingComponents": {
|
|
17
|
+
"smart-slider": "@tuya-miniapp/smart-ui/lib/normal-slider/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 普通滑动条
|
|
24
|
+
|
|
25
|
+
> 注意 instanceId 值必选,需要设置为一个字符串值且不能数字开头,每个 slider 实例的 instanceId 不同
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<smart-slider
|
|
29
|
+
instanceId="slider1"
|
|
30
|
+
trackStyle="height:4px"
|
|
31
|
+
barStyle="height:4px"
|
|
32
|
+
value="{{currentValue}}"
|
|
33
|
+
bind:end="onChange"
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
Page({
|
|
39
|
+
data: {
|
|
40
|
+
currentValue: 50,
|
|
41
|
+
},
|
|
42
|
+
onChange(event) {
|
|
43
|
+
this.setData({
|
|
44
|
+
currentValue: event.detail.value,
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 间隔滑动条
|
|
51
|
+
|
|
52
|
+
设置 `step` 属性可开启间隔拖动模式
|
|
53
|
+
|
|
54
|
+
```html
|
|
55
|
+
<smart-slider
|
|
56
|
+
instanceId="slider2"
|
|
57
|
+
trackStyle="height:8px"
|
|
58
|
+
barStyle="height:8px"
|
|
59
|
+
thumbStyle="width:18px;height:18px;"
|
|
60
|
+
stepStyle="width:4px;height:4px;"
|
|
61
|
+
activeStepStyle="background:#fff;"
|
|
62
|
+
showSteps="{{true}}"
|
|
63
|
+
step="{{10}}"
|
|
64
|
+
min="{{0}}"
|
|
65
|
+
max="{{100}}"
|
|
66
|
+
value="{{currentValue}}"
|
|
67
|
+
bind:end="onChange"
|
|
68
|
+
/>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
Page({
|
|
73
|
+
data: {
|
|
74
|
+
currentValue: 50,
|
|
75
|
+
},
|
|
76
|
+
onChange(event) {
|
|
77
|
+
this.setData({
|
|
78
|
+
currentValue: event.detail.value,
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 间隔滑动条隐藏滑块
|
|
85
|
+
|
|
86
|
+
设置 `hideThumbButton` 为 `true` 可以隐藏滑块
|
|
87
|
+
|
|
88
|
+
```html
|
|
89
|
+
<smart-slider
|
|
90
|
+
instanceId="slider3"
|
|
91
|
+
trackStyle="height:40px;border-radius:16px;"
|
|
92
|
+
barStyle="height:40px;border-radius:16px;"
|
|
93
|
+
thumbStyle="width:18px;height:18px;"
|
|
94
|
+
stepStyle="width:4px;height:12px;border-radius:4px;"
|
|
95
|
+
activeStepStyle="width:4px;height:12px;border-radius:4px;background:#fff;"
|
|
96
|
+
hideThumbButton="{{true}}"
|
|
97
|
+
showSteps="{{true}}"
|
|
98
|
+
step="{{30}}"
|
|
99
|
+
min="{{0}}"
|
|
100
|
+
max="{{90}}"
|
|
101
|
+
value="{{currentValue}}"
|
|
102
|
+
bind:end="onChange"
|
|
103
|
+
/>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
```js
|
|
108
|
+
Page({
|
|
109
|
+
data: {
|
|
110
|
+
currentValue: 50,
|
|
111
|
+
},
|
|
112
|
+
onChange(event) {
|
|
113
|
+
this.setData({
|
|
114
|
+
currentValue: event.detail.value,
|
|
115
|
+
});
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 拖动滑动条
|
|
121
|
+
|
|
122
|
+
设置 `parcel` 为true,可以使滑块包裹在滑条内。
|
|
123
|
+
|
|
124
|
+
```html
|
|
125
|
+
<smart-slider
|
|
126
|
+
instanceId="slider4"
|
|
127
|
+
parcel="{{true}}"
|
|
128
|
+
parcelMargin="{{2}}"
|
|
129
|
+
trackStyle="height:26px;border-radius:13px;"
|
|
130
|
+
barStyle="height:22px;border-radius:13px;"
|
|
131
|
+
thumbStyle="width:20px;height:20px;background:#fff;border-radius:50%;"
|
|
132
|
+
parcelThumbWidth="{{18}}"
|
|
133
|
+
parcelThumbHeight="{{18}}"
|
|
134
|
+
value="{{currentValue}}"
|
|
135
|
+
bind:end="onChange"
|
|
136
|
+
/>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
```js
|
|
140
|
+
Page({
|
|
141
|
+
data: {
|
|
142
|
+
currentValue: 50,
|
|
143
|
+
},
|
|
144
|
+
onChange(event) {
|
|
145
|
+
this.setData({
|
|
146
|
+
currentValue: event.detail.value,
|
|
147
|
+
});
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
### 拖动滑动条自定义样式1
|
|
154
|
+
|
|
155
|
+
可通过 `trackStyle`、`barStyle`、`thumbStyle` 自定义滑槽、滑动条、滑块的样式
|
|
156
|
+
|
|
157
|
+
```html
|
|
158
|
+
<smart-slider
|
|
159
|
+
instanceId="slider5"
|
|
160
|
+
trackStyle="height:45px;border-radius:8px;"
|
|
161
|
+
barStyle="height:45px;border-radius:8px;"
|
|
162
|
+
thumbStyle="width:15px;height:50px;background:#BBC5D4;border:2px solid #FFFFFF;box-shadow:0px 0px 2px 0px rgba(0, 0, 0, 0.5);border-radius:2px;"
|
|
163
|
+
value="{{currentValue}}"
|
|
164
|
+
bind:end="onChange"
|
|
165
|
+
/>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
```js
|
|
169
|
+
Page({
|
|
170
|
+
data: {
|
|
171
|
+
currentValue: 50,
|
|
172
|
+
},
|
|
173
|
+
onChange(event) {
|
|
174
|
+
this.setData({
|
|
175
|
+
currentValue: event.detail.value,
|
|
176
|
+
});
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
### 拖动滑动条自定义样式2
|
|
183
|
+
|
|
184
|
+
```html
|
|
185
|
+
<smart-slider
|
|
186
|
+
instanceId="slider6"
|
|
187
|
+
parcel="{{true}}"
|
|
188
|
+
parcelMargin="{{2}}"
|
|
189
|
+
trackStyle="height:26px;border-radius:5px;"
|
|
190
|
+
barStyle="height:22px;border-radius:5px;"
|
|
191
|
+
parcelThumbWidth="{{3}}"
|
|
192
|
+
parcelThumbHeight="{{16}}"
|
|
193
|
+
thumbStyle="width:5px;height:16px;background:#fff;"
|
|
194
|
+
value="{{currentValue}}"
|
|
195
|
+
bind:end="onChange"
|
|
196
|
+
/>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
```js
|
|
200
|
+
Page({
|
|
201
|
+
data: {
|
|
202
|
+
currentValue: 50,
|
|
203
|
+
},
|
|
204
|
+
onChange(event) {
|
|
205
|
+
this.setData({
|
|
206
|
+
currentValue: event.detail.value,
|
|
207
|
+
});
|
|
208
|
+
},
|
|
209
|
+
});
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 双滑块滑动条
|
|
213
|
+
|
|
214
|
+
两个滑块的滑动条,需要引用:
|
|
215
|
+
|
|
216
|
+
```json
|
|
217
|
+
"usingComponents": {
|
|
218
|
+
"smart-range-slider": "@tuya-miniapp/smart-ui/lib/slider/index"
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
添加 `range` 属性就可以开启双滑块模式,确保 `value` 的值是一个数组。
|
|
223
|
+
|
|
224
|
+
```html
|
|
225
|
+
<smart-range-slider
|
|
226
|
+
min="{{0}}"
|
|
227
|
+
max="{{100}}"
|
|
228
|
+
value="{{range}}"
|
|
229
|
+
bind:change="onRangeChange"
|
|
230
|
+
bar-height="4px"
|
|
231
|
+
inactive-color="#D8D9DC"
|
|
232
|
+
active-color="#007AFF"
|
|
233
|
+
/>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
```js
|
|
237
|
+
Page({
|
|
238
|
+
data: {
|
|
239
|
+
range: [10, 40],
|
|
240
|
+
},
|
|
241
|
+
onRangeChange(event) {
|
|
242
|
+
this.setData({
|
|
243
|
+
range: event.detail,
|
|
244
|
+
});
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## API
|
|
250
|
+
|
|
251
|
+
### Props
|
|
252
|
+
|
|
253
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
254
|
+
| -------------------------------- | -------------------------------------- | ------------ | -------- |
|
|
255
|
+
| active-step-style | 激活阶段样式 | _string_ | null |
|
|
256
|
+
| bar-style | 滑条样式 | _string_ | null |
|
|
257
|
+
| class-name | css 样式名 | _string_ | null |
|
|
258
|
+
| direction | 滑条方向("horizontal" | "vertical") | _string_ | null |
|
|
259
|
+
| disable | 是否禁用滑块 | _boolean_ | false |
|
|
260
|
+
| enable-touch | 是否启用触摸跳跃 | _boolean_ | true |
|
|
261
|
+
| enable-touch-bar | 是否启用触摸 bar 增加偏移 | _boolean_ | false |
|
|
262
|
+
| hidden | 是否隐藏组件 | _boolean_ | null |
|
|
263
|
+
| hide-bar-on-first-render | 是否在首次渲染时隐藏 bar | _boolean_ | false |
|
|
264
|
+
| hide-thumb | 是否隐藏滑块 | _boolean_ | false |
|
|
265
|
+
| hide-thumb-button | 是否隐藏 thumb 按钮 | _boolean_ | false |
|
|
266
|
+
| hot-area-style | 点击热区样式 | _string_ | null |
|
|
267
|
+
| instance-id | 唯一 ID | _string_ | null |
|
|
268
|
+
| max | 最大值 | _number_ | 100 |
|
|
269
|
+
| min | 最小值 | _number_ | 0 |
|
|
270
|
+
| parcel | 是否启用 parcel 模式 | _boolean_ | false |
|
|
271
|
+
| parcel-margin | parcel 模式下滑块边距 | _number_ | 0 |
|
|
272
|
+
| parcel-thumb-height | parcel 模式下滑块高度 | _number_ | null |
|
|
273
|
+
| parcel-thumb-width | parcel 模式下滑块宽度 | _number_ | null |
|
|
274
|
+
| reverse | 是否反转滑条 | _boolean_ | false |
|
|
275
|
+
| show-steps | 是否显示阶段提示 | _boolean_ | false |
|
|
276
|
+
| show-text | 是否在 bar 上显示文本 | _boolean_ | null |
|
|
277
|
+
| step | 阶段值 | _number_ | 1 |
|
|
278
|
+
| step-style | 阶段样式 | _string_ | null |
|
|
279
|
+
| text-style | 文本样式 | _string_ | null |
|
|
280
|
+
| text-template | 文本格式化模板,例如 "比率 {{text}} %" | _string_ | null |
|
|
281
|
+
| thumb-height | 滑块高度 | _number_ | null |
|
|
282
|
+
| thumb-style | 滑块样式 | _string_ | null |
|
|
283
|
+
| thumb-style-calc | 动态计算 thumb 样式 | _null_ | null |
|
|
284
|
+
| thumb-style-render-formatter | 自定义 thumb 样式渲染格式化函数 | _null_ | null |
|
|
285
|
+
| thumb-style-render-value-reverse | 是否反转 thumb 样式渲染的值 | _boolean_ | false |
|
|
286
|
+
| thumb-style-render-value-scale | 自定义 thumb 样式渲染时的值缩放比例 | _number_ | 1 |
|
|
287
|
+
| thumb-style-render-value-start | 自定义 thumb 样式渲染时的起始值 | _number_ | 1 |
|
|
288
|
+
| thumb-width | 滑块宽度 | _number_ | null |
|
|
289
|
+
| thumb-wrap-style | 滑块包装样式 | _null_ | null |
|
|
290
|
+
| track-style | 轨道样式 | _string_ | null |
|
|
291
|
+
| value | 右滑块初始值/单向滑条初始值 | _number_ | 0 |
|
|
292
|
+
|
|
293
|
+
### Slot
|
|
294
|
+
|
|
295
|
+
| 名称 | 说明 |
|
|
296
|
+
| ----- | -------- |
|
|
297
|
+
| bar `v.2.4.0` | 滑动条插槽 |
|
|
298
|
+
| thumb `v.2.4.0` | 滑块插槽 |
|
|
299
|
+
|
|
300
|
+
### Events
|
|
301
|
+
|
|
302
|
+
| 事件名 | 说明 | 参数 |
|
|
303
|
+
| ----------- | ------------ | ---------------------------- |
|
|
304
|
+
| bind:change | 值改变后触发 | event.detail.value: 当前进度 |
|
|
305
|
+
| bind:end | 拖动松手触发 | event.detail.value: 当前进度 |
|
|
306
|
+
| bind:start | 拖动前触发 | event.detail.value: 当前进度 |
|
|
307
|
+
|
|
308
|
+
## 双滑块滑动条 API
|
|
309
|
+
|
|
310
|
+
### 双滑块滑动条 Props
|
|
311
|
+
|
|
312
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
313
|
+
| ----------------- | ---------------------------------------- | -------------------- | --------- |
|
|
314
|
+
| active-color | 进度条激活态颜色 | _string_ | `#1989fa` |
|
|
315
|
+
| bar-height | 进度条高度,默认单位为 `px` | _string \| number_ | `2px` |
|
|
316
|
+
| disabled | 是否禁用滑块 | _boolean_ | `false` |
|
|
317
|
+
| inactive-color | 进度条默认颜色 | _string_ | `#e5e5e5` |
|
|
318
|
+
| max | 最大值 | _number_ | `100` |
|
|
319
|
+
| min | 最小值 | _number_ | `0` |
|
|
320
|
+
| range `v1.8.4` | 是否开启双滑块模式 | _boolean_ | `false` |
|
|
321
|
+
| step | 步长 | _number_ | `1` |
|
|
322
|
+
| use-button-slot | 是否使用按钮插槽 | _boolean_ | `false` |
|
|
323
|
+
| value | 当前进度百分比,在双滑块模式下为数组格式 | _number \| number[]_ | `0` |
|
|
324
|
+
| vertical `v1.8.5` | 是否垂直展示 | _boolean_ | `false` |
|
|
325
|
+
|
|
326
|
+
### 双滑块滑动条 Events
|
|
327
|
+
|
|
328
|
+
| 事件名 | 说明 | 参数 |
|
|
329
|
+
| --------------- | ---------------- | ---------------------------- |
|
|
330
|
+
| bind:change | 进度值改变后触发 | event.detail: 当前进度 |
|
|
331
|
+
| bind:drag | 拖动进度条时触发 | event.detail.value: 当前进度 |
|
|
332
|
+
| bind:drag-end | 结束拖动时触发 | - |
|
|
333
|
+
| bind:drag-start | 开始拖动时触发 | - |
|
|
334
|
+
|
|
335
|
+
### 双滑块滑动条外部样式类
|
|
336
|
+
|
|
337
|
+
| 类名 | 说明 |
|
|
338
|
+
| ------------ | ------------ |
|
|
339
|
+
| custom-class | 根节点样式类 |
|
|
340
|
+
|
|
341
|
+
### 双滑块滑动条 Slots
|
|
342
|
+
|
|
343
|
+
| 名称 | 说明 | 参数 |
|
|
344
|
+
| --------------------- | ----------------------------------- | ------------------- |
|
|
345
|
+
| button | 自定义滑块按钮 | _{ value: number }_ |
|
|
346
|
+
| left-button `v1.8.4` | 自定义左侧滑块按钮(双滑块模式下) | _{ value: number }_ |
|
|
347
|
+
| right-button `v1.8.4` | 自定义右侧滑块按钮 (双滑块模式下) | _{ value: number }_ |
|
|
348
|
+
|
|
349
|
+
### 样式变量
|
|
350
|
+
|
|
351
|
+
双滑块滑动条样式变量
|
|
352
|
+
|
|
353
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider&appType=miniapp)。
|
|
354
|
+
|
|
355
|
+
| 名称 | 默认值 | 描述 |
|
|
356
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
357
|
+
| --slider-active-background-color | _#1989fa_ | 活动状态背景颜色 |
|
|
358
|
+
| --slider-inactive-background-color| _#ebedf0_ | 非活动状态背景颜色 |
|
|
359
|
+
| --slider-disabled-opacity | _0.3_ | 禁用状态透明度 |
|
|
360
|
+
| --slider-bar-height | _2px_ | 滑动条高度 |
|
|
361
|
+
| --slider-button-width | _24px_ | 滑块按钮宽度 |
|
|
362
|
+
| --slider-button-height | _24px_ | 滑块按钮高度 |
|
|
363
|
+
| --slider-button-border-radius | _50%_ | 滑块按钮边框圆角 |
|
|
364
|
+
| --slider-button-background-color | _#fff_ | 滑块按钮背景颜色 |
|
|
365
|
+
| --slider-button-box-shadow | _0 1px 2px rgba(0, 0, 0, 0.5)_ | 滑块按钮阴影 |
|
|
366
|
+
| --slider-thumb-color | _var(--app-B3, #ffffff)_ | 滑块拇指颜色 |
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 数据录入
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Stepper 步进器
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"usingComponents": {
|
|
17
|
+
"smart-stepper": "@tuya-miniapp/smart-ui/lib/stepper/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 基础用法
|
|
24
|
+
|
|
25
|
+
通过`value`设置输入值,可以通过`change`事件监听到输入值的变化。
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<smart-stepper value="{{ 1 }}" bind:change="onChange" />
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
Page({
|
|
33
|
+
onChange(event) {
|
|
34
|
+
console.log(event.detail);
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 步长设置
|
|
40
|
+
|
|
41
|
+
通过`step`属性设置每次点击增加或减少按钮时变化的值,默认为`1`。
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<smart-stepper value="{{ 1 }}" step="2" />
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 限制输入范围
|
|
48
|
+
|
|
49
|
+
通过`min`和`max`属性限制输入值的范围。
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<smart-stepper value="{{ 5 }}" min="5" max="8" />
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 支持负数输入 `v2.13.2`
|
|
56
|
+
|
|
57
|
+
当`min`小于`0`时,输入框支持手动输入负数,适合温度、偏移量等允许负值的场景。
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<smart-stepper value="{{ -3 }}" min="{{ -10 }}" max="{{ 10 }}" />
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 限制输入整数
|
|
64
|
+
|
|
65
|
+
设置`integer`属性后,输入框将限制只能输入整数。
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<smart-stepper value="{{ 1 }}" integer />
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 禁用状态
|
|
72
|
+
|
|
73
|
+
通过设置`disabled`属性来禁用步进器,禁用状态下无法点击按钮或修改输入框。
|
|
74
|
+
|
|
75
|
+
```html
|
|
76
|
+
<smart-stepper value="{{ 1 }}" disabled />
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 关闭长按
|
|
80
|
+
|
|
81
|
+
通过设置`long-press`属性决定步进器是否开启长按手势。
|
|
82
|
+
|
|
83
|
+
```html
|
|
84
|
+
<smart-stepper value="{{ 1 }}" long-press="{{ false }}" />
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 固定小数位数
|
|
88
|
+
|
|
89
|
+
通过设置`decimal-length`属性可以保留固定的小数位数。
|
|
90
|
+
|
|
91
|
+
```html
|
|
92
|
+
<smart-stepper value="{{ 1 }}" step="0.2" decimal-length="{{ 1 }}" />
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 异步变更
|
|
96
|
+
|
|
97
|
+
如果需要异步地修改输入框的值,可以设置`async-change`属性,并在`change`事件中手动修改`value`。
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<smart-stepper value="{{ value }}" async-change bind:change="onChange" />
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
```js
|
|
104
|
+
Page({
|
|
105
|
+
data: {
|
|
106
|
+
value: 1,
|
|
107
|
+
},
|
|
108
|
+
|
|
109
|
+
onChange(value) {
|
|
110
|
+
Toast.loading({ forbidClick: true });
|
|
111
|
+
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
Toast.clear();
|
|
114
|
+
this.setData({ value });
|
|
115
|
+
}, 500);
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 自定义大小
|
|
121
|
+
|
|
122
|
+
通过`input-width`属性设置输入框宽度,通过`button-size`属性设置按钮大小和输入框高度。
|
|
123
|
+
|
|
124
|
+
```html
|
|
125
|
+
<smart-stepper value="{{ 1 }}" input-width="40px" button-size="32px" />
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## API
|
|
129
|
+
|
|
130
|
+
### Props
|
|
131
|
+
|
|
132
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
133
|
+
| --------------------- | ------------------------------------------------------------------------------- | ------------------ | ------- |
|
|
134
|
+
| always-embed `v1.9.3` | 强制 input 处于同层状态,默认 focus 时 input 会切到非同层状态 (仅在 iOS 下生效) | _boolean_ | `false` |
|
|
135
|
+
| async-change | 是否开启异步变更,开启后需要手动控制输入值 | _boolean_ | `false` |
|
|
136
|
+
| button-size | 按钮大小,默认单位为 `px`,输入框高度会和按钮大小保持一致 | _string \| number_ | `28px` |
|
|
137
|
+
| decimal-length | 固定显示的小数位数 | _number_ | - |
|
|
138
|
+
| disable-input | 是否禁用输入框 | _boolean_ | `false` |
|
|
139
|
+
| disable-minus | 是否禁用减少按钮 | _boolean_ | - |
|
|
140
|
+
| disable-plus | 是否禁用增加按钮 | _boolean_ | - |
|
|
141
|
+
| disabled | 是否禁用 | _boolean_ | `false` |
|
|
142
|
+
| input-width | 输入框宽度,默认单位为 `px` | _string \| number_ | `32px` |
|
|
143
|
+
| integer | 是否只允许输入整数 | _boolean_ | `false` |
|
|
144
|
+
| long-press | 是否开启长按手势 | _boolean_ | `true` |
|
|
145
|
+
| max | 最大值 | _string \| number_ | - |
|
|
146
|
+
| min | 最小值 | _string \| number_ | `1` |
|
|
147
|
+
| minus-aria-label `v2.13.0` | 减少按钮的无障碍读屏文案 | _string_ | - |
|
|
148
|
+
| name | 在表单内提交时的标识符 | _string_ | - |
|
|
149
|
+
| plus-aria-label `v2.13.0` | 增加按钮的无障碍读屏文案 | _string_ | - |
|
|
150
|
+
| show-minus | 是否显示减少按钮 | _boolean_ | `true` |
|
|
151
|
+
| show-plus | 是否显示增加按钮 | _boolean_ | `true` |
|
|
152
|
+
| step | 步长 | _string \| number_ | `1` |
|
|
153
|
+
| theme | 样式风格,可选值为 `round` | _string_ | - |
|
|
154
|
+
| value | 输入值 | _string \| number_ | 最小值 |
|
|
155
|
+
|
|
156
|
+
### Events
|
|
157
|
+
|
|
158
|
+
| 事件名 | 说明 | 回调参数 |
|
|
159
|
+
| -------------- | ------------------------ | -------------------------- |
|
|
160
|
+
| bind:blur | 输入框失焦时触发 | - |
|
|
161
|
+
| bind:change | 当绑定值变化时触发的事件 | event.detail: 当前输入的值 |
|
|
162
|
+
| bind:focus | 输入框聚焦时触发 | - |
|
|
163
|
+
| bind:minus | 点击减少按钮时触发 | - |
|
|
164
|
+
| bind:overlimit | 点击不可用的按钮时触发 | - |
|
|
165
|
+
| bind:plus | 点击增加按钮时触发 | - |
|
|
166
|
+
|
|
167
|
+
### Slot
|
|
168
|
+
|
|
169
|
+
| 名称 | 说明 |
|
|
170
|
+
| ----- | -------- |
|
|
171
|
+
| minus | 减号按钮 |
|
|
172
|
+
| plus | 加号按钮 |
|
|
173
|
+
|
|
174
|
+
### 外部样式类
|
|
175
|
+
|
|
176
|
+
| 类名 | 说明 |
|
|
177
|
+
| --------------- | -------------- |
|
|
178
|
+
| custom-class | 根节点样式类 |
|
|
179
|
+
| input-class | 输入框样式类 |
|
|
180
|
+
| minusmart-class | 减号按钮样式类 |
|
|
181
|
+
| plusmart-class | 加号按钮样式类 |
|
|
182
|
+
|
|
183
|
+
### 样式变量
|
|
184
|
+
|
|
185
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider&appType=miniapp)。
|
|
186
|
+
|
|
187
|
+
| 名称 | 默认值 | 描述 |
|
|
188
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
189
|
+
| --stepper-container-background-color | _var(--app-B6-N9, rgba(0, 0, 0, 0.05))_ | 背景色 |
|
|
190
|
+
| --stepper-background-border-radius | _10px_ | 背景圆角 |
|
|
191
|
+
| --stepper-padding | _2px_ | 外部合作内边距 |
|
|
192
|
+
| --stepper-active-color | _#e8e8e8_ | 按钮点击后颜色 |
|
|
193
|
+
| --stepper-background-color | _var(--app-B6, #fff)_ | 按钮背景色 |
|
|
194
|
+
| --stepper-button-icon-color | _var(--app-B6-N3, rgba(0, 0, 0, 0.5))_ | 按钮内部图标颜色 |
|
|
195
|
+
| --stepper-button-disabled-color | _none_ `v2.1.7` _var(--app-B6, #ffffff)_ `v2.6.1` | 按钮禁用颜色 |
|
|
196
|
+
| --stepper-button-disabled-icon-color | _var(--app-B6-N7, rgba(0, 0, 0, 0.1))_ | 按钮禁用图标颜色 |
|
|
197
|
+
| --stepper-button-round-theme-color | _#ee0a24_ | 圆角样式按钮颜色 |
|
|
198
|
+
| --stepper-btn-width | _44px_ | 按钮宽度 |
|
|
199
|
+
| --stepper-btn-height | _28px_ | 按钮高度 |
|
|
200
|
+
| --stepper-input-width | _50px_ | 中间数组输入框宽度 |
|
|
201
|
+
| --stepper-input-height | _28px_ | 中间数组输入框高度 |
|
|
202
|
+
| --stepper-input-font-size | _16px_ | 中间数组输入框字体大小 |
|
|
203
|
+
| --stepper-input-line-height | _normal_ | 中间数组输入框字体高度 |
|
|
204
|
+
| --stepper-input-text-color | _var(--app-B6-N1, rgba(0, 0, 0, 1))_ | 中间数组输入框字体颜色 |
|
|
205
|
+
| --stepper-input-disabled-text-color | _var(--app-B6-N7, rgba(0, 0, 0, 0.1))_ | 中间数组输入框禁用模式字体颜色 |
|
|
206
|
+
| --stepper-border-radius | _8px_ | 按钮圆角 |
|
|
207
|
+
| --stepper-button-border `v2.2.0` | _0_ | 按钮边框 |
|
|
208
|
+
| --stepper-button-icon-font-size `v2.2.0` | _22px_ | 按钮内部图标的字体大小 |
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 布局
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Sticky 粘性布局
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
Sticky 组件与 CSS 中`position: sticky`属性实现的效果一致,当组件在屏幕范围内时,会按照正常的布局排列,当组件滚出屏幕范围时,始终会固定在屏幕顶部。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"usingComponents": {
|
|
17
|
+
"smart-sticky": "@tuya-miniapp/smart-ui/lib/sticky/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 基础用法
|
|
24
|
+
|
|
25
|
+
将内容包裹在`Sticky`组件内即可。
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<smart-sticky>
|
|
29
|
+
<smart-button type="primary">基础用法</smart-button>
|
|
30
|
+
</smart-sticky>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 吸顶距离
|
|
34
|
+
|
|
35
|
+
通过`offset-top`属性可以设置组件在吸顶时与顶部的距离。
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<smart-sticky offset-top="{{ 50 }}">
|
|
39
|
+
<smart-button type="info">吸顶距离</smart-button>
|
|
40
|
+
</smart-sticky>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 指定容器
|
|
44
|
+
|
|
45
|
+
通过`container`属性可以指定组件的容器,页面滚动时,组件会始终保持在容器范围内,当组件即将超出容器底部时,会返回原位置。
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<view id="container" style="height: 150px;">
|
|
49
|
+
<smart-sticky container="{{ container }}">
|
|
50
|
+
<smart-button type="warning">指定容器</smart-button>
|
|
51
|
+
</smart-sticky>
|
|
52
|
+
</view>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
Page({
|
|
57
|
+
data: {
|
|
58
|
+
container: null,
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
onReady() {
|
|
62
|
+
this.setData({
|
|
63
|
+
container: () => ty.createSelectorQuery().select('#container'),
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 嵌套在 scroll-view 内使用
|
|
70
|
+
|
|
71
|
+
通过 `scroll-top` 与 `offset-top` 属性可以实现在 scroll-view 内嵌套使用。
|
|
72
|
+
|
|
73
|
+
```html
|
|
74
|
+
<scroll-view
|
|
75
|
+
bind:scroll="onScroll"
|
|
76
|
+
scroll-y
|
|
77
|
+
id="scroller"
|
|
78
|
+
style="height: 200px;"
|
|
79
|
+
>
|
|
80
|
+
<view style="height: 400px; padding-top: 50px;">
|
|
81
|
+
<smart-sticky scroll-top="{{ scrollTop }}" offset-top="{{ offsetTop }}">
|
|
82
|
+
<smart-button type="warning">嵌套在 scroll-view 内</smart-button>
|
|
83
|
+
</smart-sticky>
|
|
84
|
+
</view>
|
|
85
|
+
</scroll-view>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
```js
|
|
89
|
+
Page({
|
|
90
|
+
data: {
|
|
91
|
+
scrollTop: 0,
|
|
92
|
+
offsetTop: 0,
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
onScroll(event) {
|
|
96
|
+
ty.createSelectorQuery()
|
|
97
|
+
.select('#scroller')
|
|
98
|
+
.boundingClientRect((res) => {
|
|
99
|
+
this.setData({
|
|
100
|
+
scrollTop: event.detail.scrollTop,
|
|
101
|
+
offsetTop: res.top,
|
|
102
|
+
});
|
|
103
|
+
})
|
|
104
|
+
.exec();
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## API
|
|
110
|
+
|
|
111
|
+
### Props
|
|
112
|
+
|
|
113
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
114
|
+
| ---------- | ------------------------------------------------------------ | ---------- | ------ |
|
|
115
|
+
| container | 一个函数,返回容器对应的 NodesRef 节点 | _function_ | - |
|
|
116
|
+
| offset-top | 吸顶时与顶部的距离,单位`px` | _number_ | `0` |
|
|
117
|
+
| scroll-top | 当前滚动区域的滚动位置,非 `null` 时会禁用页面滚动事件的监听 | _number_ | - |
|
|
118
|
+
| z-index | 吸顶时的 z-index | _number_ | `99` |
|
|
119
|
+
|
|
120
|
+
### Events
|
|
121
|
+
|
|
122
|
+
| 事件名 | 说明 | 回调参数 |
|
|
123
|
+
| ----------- | ---------- | ---------------------------------------------- |
|
|
124
|
+
| bind:scroll | 滚动时触发 | { scrollTop: 距离顶部位置, isFixed: 是否吸顶 } |
|