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 ​

Handle 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.