Range Slider Svelte Component
Range Slider Svelte component represents Range Slider component.
Range Slider Components
There are following components included:
Range
Range Slider Properties
Prop | Type | Default | Description |
---|---|---|---|
<Range> properties | |||
init | boolean | true | Initializes Range Slider |
value | number array string | Range Slider value, must be array in case of dual range slider | |
min | number string | Minimum value | |
max | number string | Maximum value | |
step | number string | 1 | Minimal step between values |
label | boolean | false | Enables additional label around range slider knob |
dual | boolean | false | Enables dual range slider |
vertical | boolean | false | Enables vertical range slider |
verticalReversed | boolean | false | Makes vertical range slider reversed. (Only when vertical:true ) |
draggableBar | boolean | true | When enabled it is also possible to interact with range slider (change value) on range bar click and swipe. |
formatLabel | function(value) | Method must return formatted range knob label text. As an argument it receives label value | |
scale | boolean | false | Enables range slider scale |
scaleSteps | number | 5 | Number of scale steps |
scaleSubSteps | number | 0 | Number of scale sub steps (each step will be divided by this value) |
formatScaleLabel | function (value) | Method must return formatted scale value. As an argument it receives currect scale step value. This method will be called as for each scale step. | |
limitKnobPosition | boolean | Limits knob position to the size of the range bar. By default enabled from iOS theme | |
disabled | boolean | false | Defines whether the range slider is disabled or not |
id | string | Range slider element ID attribute | |
input | boolean | false | If enabled, then it will render input type="range" element inside as well |
inputId | string | Input element ID attribute | |
name | string | Input element "name" attribute |
Range Slider Events
Event | Description |
---|---|
<Range> events | |
rangeChange | Event will be triggered when Range Slider value has been changed |
rangeChanged | Event will be triggered on slider knob release after value change |
Examples
<Page>
<Navbar title="Range Slider"></Navbar>
<BlockTitle>Volume</BlockTitle>
<List simpleList>
<ListItem>
<ListItemCell class="width-auto flex-shrink-0">
<Icon ios="f7:speaker_fill" aurora="f7:speaker_fill" md="material:volume_mute"></Icon>
</ListItemCell>
<ListItemCell class="flex-shrink-3">
<Range
min={0}
max={100}
step={1}
value={10}
></Range>
</ListItemCell>
<ListItemCell class="width-auto flex-shrink-0">
<Icon ios="f7:speaker_3_fill" aurora="f7:speaker_3_fill" md="material:volume_up"></Icon>
</ListItemCell>
</ListItem>
</List>
<BlockTitle>Brightness</BlockTitle>
<List simpleList>
<ListItem>
<ListItemCell class="width-auto flex-shrink-0">
<Icon ios="f7:sun_min" aurora="f7:sun_min" md="material:brightness_low"></Icon>
</ListItemCell>
<ListItemCell class="flex-shrink-3">
<Range
min={0}
max={100}
step={1}
value={50}
label={true}
color="orange"
></Range>
</ListItemCell>
<ListItemCell class="width-auto flex-shrink-0">
<Icon ios="f7:sun_max_fill" aurora="f7:sun_max_fill" md="material:brightness_high"></Icon>
</ListItemCell>
</ListItem>
</List>
<BlockTitle class="display-flex justify-content-space-between">
<span>Price Filter</span>
<span>${priceMin} - ${priceMax}</span>
</BlockTitle>
<List simpleList>
<ListItem>
<ListItemCell class="width-auto flex-shrink-0">
<Icon ios="f7:money_dollar_circle" aurora="f7:money_dollar_circle" md="material:attach_money"></Icon>
</ListItemCell>
<ListItemCell class="flex-shrink-3">
<Range
min={0}
max={500}
step={1}
value={[priceMin, priceMax]}
label={true}
dual={true}
color="green"
onRangeChange={onPriceChange}
></Range>
</ListItemCell>
<ListItemCell class="width-auto flex-shrink-0">
<Icon ios="f7:money_dollar_circle_fill" aurora="f7:money_dollar_circle_fill" md="material:monetization_on"></Icon>
</ListItemCell>
</ListItem>
</List>
<BlockTitle>With Scale</BlockTitle>
<Block strong>
<Range
min={0}
max={100}
label={true}
step={5}
value={25}
scale={true}
scaleSteps={5}
scaleSubSteps={4}
/>
</Block>
<BlockTitle>Vertical</BlockTitle>
<Block strong class="display-flex justify-content-center">
<Range
class="margin-right"
style="height: 160px"
vertical={true}
min={0}
max={100}
label={true}
step={1}
value={25}
/>
<Range
class="margin-horizontal"
style="height: 160px"
vertical={true}
min={0}
max={100}
label={true}
step={1}
value={50}
/>
<Range
class="margin-horizontal"
style="height: 160px"
vertical={true}
min={0}
max={100}
label={true}
step={1}
value={75}
/>
<Range
class="margin-left"
style="height: 160px"
dual={true}
vertical={true}
min={0}
max={100}
label={true}
step={1}
value={[25, 75]}
/>
</Block>
<BlockTitle>Vertical Reversed</BlockTitle>
<Block strong class="display-flex justify-content-center">
<Range
class="margin-right"
color="red"
style="height: 160px"
vertical={true}
verticalReversed={true}
min={0}
max={100}
label={true}
step={1}
value={25}
/>
<Range
class="margin-horizontal"
color="red"
style="height: 160px"
vertical={true}
verticalReversed={true}
min={0}
max={100}
label={true}
step={1}
value={50}
/>
<Range
class="margin-horizontal"
color="red"
style="height: 160px"
vertical={true}
verticalReversed={true}
min={0}
max={100}
label={true}
step={1}
value={75}
/>
<Range
class="margin-left"
color="red"
style="height: 160px"
dual={true}
vertical={true}
verticalReversed={true}
min={0}
max={100}
label={true}
step={1}
value={[25, 75]}
/>
</Block>
</Page>
<script>
import {Page, Navbar, BlockTitle, List, ListItem, ListItemCell, Icon, Range, Block} from 'framework7-svelte';
let priceMin = 200;
let priceMax = 400;
function onPriceChange(values) {
priceMin = values[0];
priceMax = values[1];
}
</script>