Pure JS react native slider component with one or two markers. Options to customize track, touch area and provide customer markers and callbacks for touch events and value changes.
cd example/Basic
npm install
react-native run-ios
react-native run-android
$ npm install --save react-native-gradient-multi-slider
$ yarn add -D react-native-gradient-multi-slider
import MultiSlider from 'react-native-gradient-multi-slider';
<MultiSlider
sliderLength={250}
min={0}
max={12}
step={1}
/>
In order to make different styles on markers you can set isMarkersSeparated to true, define customMarkerLeft and customMarkerRight in MultiSlider. for example:
<MultiSlider
...
isMarkersSeparated={true}
customMarkerLeft={(e) => {
return (<CustomSliderMarkerLeft
currentValue={e.currentValue}/>)
}}
customMarkerRight={(e) => {
return (<CustomSliderMarkerRight
currentValue={e.currentValue}/>)
}}
/>
Feel free to contribute to this part of the documentation.
Prop Name | Default | Type | Purpose |
---|---|---|---|
values | [0] | Array | Prefixed values of the slider |
gradientColors | #... | Array | Gradient colors for slider track |
onValuesChangeStart | () => {} | Function | Callback when value starts changing |
onValuesChange | () => {} | Function | Callback when value changes |
onValuesChangeFinish | () => {} | Function | Callback when value stops changing |
sliderLength | 280 | Number | Length of the slider |
touchDimensions | {...} | Object | Touch dimensions configuration |
enableLabel | Function | Enable label rendering | |
customLabel | Function | Component for rendering label above | |
customMarker | Function | Component for cursor | |
customMarkerLeft | Function | Component for left cursor | |
customMarkerRight | Function | Component for right cursor | |
isMarkersSeparated | Boolean | Explanation in README.md | |
min | 0 | Number | Minimum value available in slider |
max | 10 | Number | Maximum value available in slider |
step | 1 | Number | Step value of slider |
optionsArray | Array | Possible values of slider | |
Styles | {...} | Style | Slider styles |
valuePrefix | String | Prefix added to value | |
valueSuffix | String | Suffix added to value | |
enabledOne | true | Boolean | Enables first cursor |
enabledTwo | true | Boolean | Enables second cursor |
stepsAs | [] | Array | Customize step labels |
showSteps | false | Boolean | Show steps |
showStepMarkers | true | Boolean | Show step markers on track |
showStepLabels | true | Boolean | Show step labels underneath track |
onToggleOne | Function | Listener when first cursor toggles | |
onToggleTwo | Function | Listener when second cursor toggles | |
allowOverlap | false | Boolean | Allow overlap within cursors |
snapped | false | Boolean | Fixed position for markers |
smoothSnapped | false | Boolean | Snap to nearest marker on release |
vertical | false | Boolean | Use vertical orientation |
markerOffsetX | 0 | Number | Offset cursor(s) on X axis |
markerOffsetY | 0 | Number | Offset cursor(s) on Y axis |
markerSize | 0 | Number | Marker margin from track edges |
minMarkerOverlap... | 0 | Number | Closest distance between markers (pixels) |
imageBackground... | String | ImageBackground source | |
testID | String | Used in end-to-end tests |