Skip to content

Slider

slider

Rule

Basic Example

js
const rule = {
    type: 'slider',
    title: 'Slider',
    field: 'slider',
    value: 50,
    props: {
        disabled: false,
    }
}

Props Configuration Examples

Single Value Slider

js
const rule = {
    type: 'slider',
    title: 'Volume',
    field: 'volume',
    value: 50,
    props: {
        min: 0,
        max: 100,
        step: 1,
    }
}

Dual Slider (Range Selection)

js
const rule = {
    type: 'slider',
    title: 'Price Range',
    field: 'priceRange',
    value: [30, 70],
    props: {
        range: true,
        min: 0,
        max: 1000,
    }
}

Custom Color

js
const rule = {
    type: 'slider',
    title: 'Volume',
    field: 'volume',
    value: 50,
    props: {
        activeColor: '#07c160',
        inactiveColor: '#ebedf0',
    }
}

Vertical Slider

js
const rule = {
    type: 'slider',
    title: 'Height',
    field: 'height',
    value: 50,
    props: {
        vertical: true,
        min: 0,
        max: 100,
    }
}

Events Examples

Listen to Slider Changes

js
const rule = {
    type: 'slider',
    title: 'Volume',
    field: 'volume',
    value: 50,
    props: {
        min: 0,
        max: 100,
    },
    on: {
        change: (value) => {
            console.log('Value changed (drag ended):', value);
        },
        'drag-start': (event) => {
            console.log('Drag started:', event);
        },
        'drag-end': (event) => {
            console.log('Drag ended:', event);
        },
    },
}

Update Display After Range Changes

js
const rule = [
    {
        type: 'slider',
        title: 'Price Range',
        field: 'priceRange',
        value: [0, 100],
        props: {
            min: 0,
            max: 1000,
            range: true,
        },
        inject: true,
        on: {
        change: ($inject, value) => {
            // Update price range display text
            const [min, max] = value;
            $inject.api.setValue('priceRangeText', `¥${min} - ¥${max}`);
        },
        },
    },
    {
        type: 'input',
        field: 'priceRangeText',
        title: 'Price Range',
        props: {
            disabled: true,
        },
    },
]

Complete configuration items:Vant_Slider

value :Number | Array

Props

ParameterDescriptionTypeDefault Value
maxMaximum valuenumber | string100
minMinimum valuenumber | string0
stepStep sizenumber | string1
bar-heightProgress bar height, default unit is pxnumber | string2px
button-sizeSlider button size, default unit is pxnumber | string24px
active-colorProgress bar active state colorstring#1989fa
inactive-colorProgress bar inactive state colorstring#e5e5e5
rangeWhether to enable dual slider modebooleanfalse
reverseWhether to reverse the progress barbooleanfalse
disabledWhether to disable sliderbooleanfalse
readonlyWhether it is in readonly state, cannot modify slider value in readonly statebooleanfalse
verticalWhether to display verticallybooleanfalse

Events

Event NameDescriptionCallback Parameters
changeTriggered when progress changes and drag endsvalue: number
drag-startTriggered when drag startsevent: TouchEvent
drag-endTriggered when drag endsevent: TouchEvent

FormCreate is an open-source project released under the MIT License. Free for personal and commercial use.