| 属性名 | 类型 | 默认值 | 说明 |- | - |- | - | | 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: 同上 |
<slider-range
:scale="{
show: true,
format: scaleFormat
}"
@change="changeSliderValue">
</slider-range>
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
}
}
}
// 自定义滑动块
<slider-range>
<!-- #ifndef MP-WEIXIN -->
<template #block>
<image
class="block-image"
src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/icon.png?v=1556263038788">
</image>
</template>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<template #firstBlock>
<image
class="block-image"
src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/icon.png?v=1556263038788">
</image>
</template>
<template #secondBlock>
<image
class="block-image"
src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/icon.png?v=1556263038788">
</image>
</template>
<!-- 这个是用来撑起元素高度的,不传这个滑动条不会自动撑起高度 -->
<template #placeholderBlock>
<image
class="block-image"
src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/icon.png?v=1556263038788">
</image>
</template>
<!-- #endif -->
</slider-range>
// 自定义滑动提示
<slider-range>
<!-- #ifndef MP-WEIXIN -->
<template #tips="{ value }">
<view class="dark-mode">{{ value }}</view>
</template>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<!-- 微信小程序不能使用插槽传值,可以在 change 方法里获取到后显示出来对应的值 -->
<template v-slot:firstTips>
<view class="dark-mode">{{ firstValue }}</view>
</template>
<template v-slot:secondTips>
<view class="dark-mode">{{ secondValue }}</view>
</template>
<!-- #endif -->
</slider-range>
<slider-range :max="max || 100" ref="mySliderRange"></slider-range>
this.max = 10
this.$nextTick(() => {
this.$refs.mySliderRange.create()
})