除了支持 通用属性以外,还支持如下属性。
名称 |
类型 |
默认值 |
是否必填 |
描述 |
|---|---|---|---|---|
min |
number |
0 |
否 |
滑动选择器可以选择值的最小值。如果设置为小数,将四舍五入处理为整数。 |
max |
number |
100 |
否 |
滑动选择器可以选择值的最大值。如果设置为小数,将四舍五入处理为整数。 |
step |
number |
1 |
否 |
显示步长,每次拖动增加或减少的步长。如果设置为小数,将四舍五入处理为整数。 |
value |
number |
0 |
否 |
显示滑动选择器当前选择的值。如果设置为小数,将四舍五入处理为整数。 |
支持active伪类。支持除max-width、max-height外所有通用样式,还支持如下样式。
名称 |
类型 |
默认值 |
是否必填 |
描述 |
|---|---|---|---|---|
color |
color |
rgba(240,240,240,1.0) |
否 |
背景条颜色。 |
selected-color |
color |
rgba(51,180,255,1.0) |
否 |
已选择颜色。 |
padding-[left|right] |
length |
32px |
否 |
左右边距。 |
block-color(1050+) |
color |
- |
否 |
滑块颜色。 |
不支持swipe事件。低于1040版本不支持click事件。除了支持 通用事件 以外,还支持如下事件。
名称 |
参数 |
描述 |
|---|---|---|
change |
{progress:progressValue, isFromUser:isFromUserValue 1080+} |
完成一次拖动后触发的事件。 isFromUser表示是否由用户拖动触发。 |
<template>
<div class="container">
<div class="page-title-wrap">
<text class="page-title">{{componentName}}</text>
</div>
<div class="item-container">
<text class="item-title">显示当前value</text>
<div class="item-content">
<slider class="slider" style="color:#FFB6C1" value=50 onchange="getValue('currentValue1')"></slider>
<text class="label">{{currentValue1}}</text>
</div>
</div>
<div class="item-container">
<text class="item-title">设置step: {{step}}</text>
<div class="item-content">
<slider class="slider" value=50 step="{{step}}" onchange="getValue('currentValue2')"></slider>
<text class="label">{{currentValue2}}</text>
</div>
</div>
<div class="item-container">
<text class="item-title">设置最小值: 50; 最大值: 200</text>
<div class="item-content">
<slider class="slider" min="50" max="200" value=50 onchange="getValue('currentValue3')"></slider>
<text class="label">{{currentValue3}}</text>
</div>
</div>
</div>
</template>
<script>
export default {
data: {
componentName: 'slider',
step: 10,
currentValue1: 50,
currentValue2: 50,
currentValue3: 50,
},
getValue: function (name, e) {
this[name] = e.progress
}
}
</script>
<style>
.container {
flex: 1;
flex-direction: column;
}
.page-title-wrap {
padding-top: 50px;
padding-bottom: 80px;
justify-content: center;
}
.page-title {
padding-top: 30px;
padding-bottom: 30px;
padding-left: 40px;
padding-right: 40px;
border-color: #bbbbbb;
color: #bbbbbb;
border-bottom-width: 2px;
}
.item-container {
margin-top: 20px;
margin-bottom: 30px;
flex-direction: column;
}
.item-title {
padding-left: 30px;
padding-bottom: 30px;
padding-top: 30px;
border-bottom-width: 1px;
border-color: #bbbbbb;
color: #aaaaaa;
}
.item-content {
background-color: #ffffff;
border-bottom-width: 1px;
border-color: #bbbbbb;
padding-left: 30px;
padding-right: 30px;
}
.slider {
flex: 1;
padding-left: 50px;
padding-right: 200px;
selected-color: #FF0000;
block-color: #FFFF00;
}
.label {
padding-left: 30px;
padding-right: 30px;
}
</style>
效果图如下:
