Компонент Slider предназначен для выбора значения или диапазона значений с помощью интерактивного ползунка. Он является одним из ключевых элементов интерфейса в библиотеках UI для SvelteKit, обеспечивая удобное взаимодействие пользователя с приложением.
В SvelteKit Slider реализуется как компонент, который можно настроить через пропсы, события и слоты, что позволяет интегрировать его в сложные интерфейсы без написания большого объема кода вручную.
Для использования Slider необходимо импортировать компонент из выбранной UI библиотеки:
<script>
import { Slider } from 'sveltekit-ui';
let value = 50;
</script>
<Slider bind:value min={0} max={100} step={1} />
<p>Текущее значение: {value}</p>
Ключевые пропсы:
value — текущее значение слайдера, которое можно
двусторонне привязать с помощью bind:value.min и max — минимальное и максимальное
значения.step — шаг изменения значения при перемещении
ползунка.Двусторонняя привязка позволяет автоматически синхронизировать состояние Slider с переменной в компоненте, упрощая управление значением в приложении.
Большинство UI библиотек для SvelteKit позволяют кастомизировать Slider с помощью пропсов и классов CSS:
<Slider
bind:value
min={0}
max={100}
step={5}
trackClass="custom-track"
thumbClass="custom-thumb"
/>
trackClass — класс для стилизации дорожки
слайдера.thumbClass — класс для стилизации ползунка.activeTrackClass — класс для части дорожки,
соответствующей выбранному значению.Такая гибкость позволяет легко интегрировать Slider в любой дизайн и поддерживать визуальную консистентность с остальными компонентами UI.
Slider может поддерживать выбор диапазона, предоставляя два ползунка:
<script>
let range = [20, 80];
</script>
<Slider
bind:value={range}
min={0}
max={100}
step={1}
range
/>
<p>Выбранный диапазон: {range[0]} - {range[1]}</p>
range активирует режим двойного ползунка.value становится массивом из двух чисел.Slider поддерживает основные события для работы с пользовательским взаимодействием:
on:input — вызывается при каждом изменении положения
ползунка.on:change — вызывается при завершении перемещения
ползунка.Пример использования событий:
<Slider
bind:value
min={0}
max={100}
step={1}
on:input={(e) => console.log('Текущее значение:', e.detail)}
on:change={(e) => console.log('Финальное значение:', e.detail)}
/>
Использование событий позволяет реализовать динамическое обновление других элементов интерфейса, зависимых от значения Slider.
Компонент поддерживает ориентацию и кастомные варианты отображения:
<Slider
bind:value
min={0}
max={100}
step={1}
orientation="vertical"
trackClass="vertical-track"
thumbClass="vertical-thumb"
/>
orientation="vertical" меняет расположение ползунка с
горизонтального на вертикальное.Slider может использоваться внутри форм SvelteKit для ввода числовых значений. Пример с валидацией:
<script>
import { onMount } from 'svelte';
let value = 0;
let error = '';
function validate() {
error = value < 10 ? 'Значение должно быть не меньше 10' : '';
}
$: validate();
</script>
<form>
<Slider bind:value min={0} max={100} step={1} />
{#if error}
<span class="error">{error}</span>
{/if}
</form>
$: позволяет автоматически
проверять значение при изменении.При работе с большими интерфейсами важно учитывать производительность:
bind:value только для необходимых
переменных.on:input может генерировать множество
обновлений, поэтому в критичных случаях рекомендуется использовать
on:change для минимизации ререндеров.Компонент Slider в SvelteKit UI libs предоставляет полный набор инструментов для интерактивного выбора значений: поддержка диапазонов, событий, кастомного дизайна, вертикальной ориентации и интеграции с формами. Его гибкость позволяет создавать как простые элементы управления, так и сложные интерактивные панели управления.