# slider-range ## 区间滑动选择 ### 属性说明 | 属性名 | 类型 | 默认值 | 说明 |- | - |- | - | | value |Number/Array[2]|[]|初始值,为 number 时表示滑动选择器,为 array 时表示区间滑动选择器| | valueType | String | max | 当 value 为 number 时,可滑动的是哪个值,可选值:min、max,默认 max | | min | Number | 0 | 最小值(最左侧值)默认 0 | | max | Number | 100 | 最大值(最右侧值)默认 100 | | step | Number | 1 | 步长,为 0 时不设步长,默认为 1,支持步长为浮点数,不设步长时返回两位浮点数,想要获取几位浮点数就把步长设置为几位浮点数 | | height | Number/String | 12 | 滑动条高度,可自定义单位,默认单位 rpx | | disabled | Boolean | false | 是否禁用 | | tips | Boolean | true | 是否显示滑动提示 | | scale | Boolean/Object | true | 刻度条配置,为 boolean 时表示是否显示,为 object 时见下方刻度条配置说明 | | backgroundStyle | Object | {} | 背景条自定义样式 | | activeStyle | Object | {} | 选中条自定义样式 | ### 刻度条配置说明 | 属性名 | 类型 | 默认值 | 说明 | |- | - |- | - | |show | Boolean | true | 是否显示 | |min | Boolean | true | 是否显示最小刻度 | |max | Boolean | true | 是否显示最大刻度 | |interval | Number | auto | 刻度间隔,即间隔几个步长,不设步长时默认为 1,默认自动计算间隔,显示 10 个左右的刻度 | |color | String | #333333 | 刻度值颜色 | |tickColor | String | #999999 | 刻度线颜色 | |fontSize | Number/String | 22 | 刻度值字体大小 | |format | Function | null | 格式化函数,可以通过此函数来设置具体某一个刻度的显示内容和样式 | ### 回调方法 | 方法名 | 说明 | 返回值 | |- |- |- | | change | 滑动时触发 | firstValue: 第一个滑点的值,一般只在小程序使用firstTips插槽时才有用, secondValue,第一个滑点的值,一般只在小程序使用secondValue插槽时才有用,values: 选择区间,数组形式,第一个值为较小值,第二个值为较大值 | | start | 按住滑动块时触发 | block: 按住的滑动块, value: 按住滑动块的当前值, values: 同上 | | end | 松开滑动块时触发 | block: 按住的滑动块, value: 按住滑动块的当前值, values: 同上 | ### 使用示例 ``` ``` ``` import SliderRange from '@/components/tianzai-slider-range' export default { components:{ SliderRange }, methods: { changeSliderValue(e){ console.log(e) }, scaleFormat(val, index){ if(index % 2 != 0){ return {...val, label: '自定义设置', fontSize: '48rpx'} } return val } } } ``` ### 插槽(微信不支持同名插槽多次渲染,需要不同的写法兼容) ``` // 自定义滑动块 ``` ``` // 自定义滑动提示 ``` ### 其他注意点 - 组件所有属性并非绑定且没有watch监听,只用于组件渲染时的初始设置,可以在 value、min、max、step 等属性发生变化时调用组件的 create 方法来使其生效,否则可能造成组件显示错乱。 ``` this.max = 10 this.$nextTick(() => { this.$refs.mySliderRange.create() }) ``` - format 在函数中改变 fontSize 时不再自动补全单位(不能只写数字),需设置时填写完全。 - 关于微信的多个同名插槽问题,官方的 issues 上说在解决中,如果哪天解决了可以在评论区提醒我来优化 [github issues](https://github.com/dcloudio/uni-app/issues/3503) - 关于微信小程序插槽无法传值问题,HBuilderx 官方说解决了,但是我在编写过程中还是无法使用,如果有人会写,麻烦在评论区告知 [github issues](https://github.com/dcloudio/uni-app/issues/495)