vue-slide-bar是一个简单的Vue滑块组件,可以用于选择范围,可以添加标签和自定义样式,支持预定义的最小和最大值。
vue-slide-bar的特点包括:
- 简单易用,可以用于选择范围。
- 可以添加标签和自定义样式。
- 支持预定义的最小和最大值。
- 支持动态加载。
使用方法
安装
如果您想使用vue-slide-bar滑块插件,首先您需要安装它,命令如下:
npm install vue-slide-bar --save // or yarn add vue-slide-bar
使用
全局使用
// main.js import Vue from 'vue' import VueSlideBar from 'vue-slide-bar' Vue.component('VueSlideBar', VueSlideBar)
局部引用
// xxx.vue import VueSlideBar from 'vue-slide-bar' export default { components: { VueSlideBar } }
示例代码:
<template> <VueSlideBar v-model="value"/> </template> export default { data () { return { value: 50 } } } // With Label <template> <div> <VueSlideBar v-model="slider.value" :data="slider.data" :range="slider.range" :labelStyles="{ color: '#4a4a4a', backgroundColor: '#4a4a4a' }" :processStyle="{ backgroundColor: '#d8d8d8' }" @callbackRange="callbackRange"> <template slot="tooltip" slot-scope="tooltip"> <img src="static/images/rectangle-slider.svg"> </template> </VueSlideBar> <h2>Value: {{slider.value}}</h2> <h2>Label: {{rangeValue.label}}</h2> </div> </template> import VueSlideBar from 'vue-slide-bar' export default { data () { return { rangeValue: {}, slider: { value: 45, data: [ 15, 30, 45, 60, 75, 90, 120 ], range: [ { label: '15 mins' }, { label: '30 mins', isHide: true }, { label: '45 mins' }, { label: '1 hr', isHide: true }, { label: '1 hr 15 mins' }, { label: '1 hr 30 mins', isHide: true }, { label: '2 hrs' } ] } } }, methods: { callbackRange (val) { this.rangeValue = val } }, components: { VueSlideBar } } // Custom Style & Min-Max <template> <div> <VueSlideBar v-model="value2" :min="1" :max="10" :processStyle="slider.processStyle" :lineHeight="slider.lineHeight" :tooltipStyles="{ backgroundColor: 'red', borderColor: 'red' }"> </VueSlideBar> <h2>Value: {{value2}}</h2> </div> </template> import VueSlideBar from 'vue-slide-bar' export default { data () { return { value2: 8, slider: { lineHeight: 10, processStyle: { backgroundColor: 'red' } } } }, components: { VueSlideBar } } // Loading <template> <div> <VueSlideBar v-model="loading" :showTooltip="false" :lineHeight="20" :isDisabled="true"/> <br> <button type="button" name="button" @click="startLoad()"> Click to start load </button> <h2>Loading: {{loading}}%</h2> </div> </template> import VueSlideBar from 'vue-slide-bar' export default { data () { return { loader: null, loading: 0 } }, methods: { startLoad () { this.loader = setInterval(() => { this.loading++ if (this.loading === 100) { console.log('clear', this.loading) clearInterval(this.loader) } }, 100) } } components: { VueSlideBar } }
配置参数
vue-slide-bar滑块插件的可用配置参数如下:
- v-model:初始值(v-model),默认为0。
- min:最小值,默认为0。
- max:最大值:默认为100。
- process-style:进度条的样式,默认为null。
- tooltip-styles:Tooltip的样式,默认为null。
- tooltip-styles:Tooltip的样式,默认为null。
- label-style:label标签的样式,默认为null。
- data:自定义数据。一个数组。
- is-disabled:是否禁用滑块,默认为false。
- draggable:是否可以拖动滑块,默认值为true。
- show-tooltip:是否显示tooltip,默认值为true。
- icon-width:图标宽度,默认值为20px。
- line-height:行高,默认值为5。
- speed:transision过渡时间时间,默认为0.5。
- paddingless:是否删除填充和最小高度,默认值为false。
事件
vue-slide-bar滑块插件的可用事件如下:
- input:滑块的值更改时触发。
- callbackRange:滑块的范围值更改时触发。
- dragStart:在滑块开始拖动时触发。
- dragEnd:在滑块停止拖动时触发。
插槽
tooltip:自定义工具提示(tooltip)插槽。