Pro installation quickstart 🚀

Introduction

L'entrée slider est une version avancée et hautement configurable de l'entrée HTML native range. Certaines ajouts notables par rapport à l'entrée range standard sont :

  • Prise en charge des entrées à valeurs multiples.
  • Afficher des infobulles pour montrer les valeurs sélectionnées.
  • Afficher des entrées liées pour les valeurs min et max.
  • Afficher des marques de graduation pour les étapes de valeur.
  • Ajouter des marques de graduation arbitraires.
  • Forcer la sélection à s'aligner sur les marques de graduation.
  • Afficher les données du graphique à barres liées aux valeurs de sélection.

Aperçu du curseur

7 mins

Exemple de base

Charger l'exemple en direct

Props natifs

Si vous êtes familier avec l'utilisation de l'entrée HTML native range, vous constaterez que bon nombre des props existantes que vous connaissez fonctionnent comme prévu avec l'entrée slider.

Charger l'exemple en direct

Touches de modification du clavier

Même dans sa forme la plus simple, l'entrée slider a quelques astuces dans sa manche. Tout comme l'entrée native range, vous pouvez utiliser les touches fléchées pour ajuster la valeur de l'entrée lorsqu'elle est focalisée - mais avec l'entrée slider, vous pouvez maintenir la touche shift pour incrémenter de 10x et la touche de modification de votre système (command ou ctrl) pour passer aux valeurs min / max.

Saisie de nombre au clavier

Lorsque vous avez une poignée focalisée sur une entrée slider, vous pouvez taper une valeur sur votre clavier et après un léger rebond, votre poignée slider sera réglée sur la valeur que vous avez fournie - ou la correspondance la plus proche disponible.

Valeurs multiples

Pour afficher deux poignées de valeur sur une entrée slider, fournissez un tableau comme valeur de l'entrée. Les poignées de contrôle peuvent être glissées l'une à travers l'autre et la valeur du tableau résultant sera toujours renvoyée triée dans l'ordre, du plus petit au plus grand.

Charger l'exemple en direct

Personnalisation des infobulles

Visibilité de l'infobulle

Par défaut, les infobulles slider s'affichent au survol et lorsqu'une poignée de sélection est en cours de glissement. Vous pouvez forcer les infobulles dans un état activé ou désactivé en utilisant la prop tooltip et en fournissant une valeur booléenne.

Charger l'exemple en direct

Formatage de l'infobulle

En fournissant une fonction à la prop tooltip-format, vous pouvez personnaliser la valeur de votre infobulle slider. Votre fonction tooltip-format recevra deux arguments :

value: La valeur actuelle qui serait affichée dans l'infobulle par défaut. handle: La poignée actuelle affectée par la fonction. Soit min ou max.

Charger l'exemple en direct

En utilisant la prop tooltip-format, vous pouvez introduire de la variété dans vos entrées slider - surtout lorsqu'elles sont combinées avec le système de props de classe de section-clé de FormKit.

Charger l'exemple en direct

Entrées de nombres liées

Parfois, une entrée de style "range" est plus utile pour les utilisateurs s'ils peuvent également entrer directement des valeurs numériques dans des champs liés. Vous pouvez afficher des entrées number liées aux valeurs des poignées de la plage slider en définissant la propriété show-input sur true.

Charger l'exemple en direct

Attributs des entrées liées

Les entrées number liées sont des entrées FormKit. Vous pouvez leur appliquer des propriétés en utilisant les props fournies :

  • input-attrs : liera votre objet fourni aux entrées min et max.
  • min-input-attrs : Objet à lier à l'entrée min liée.
  • max-input-attrs : Objet à lier à l'entrée max liée.
Charger l'exemple en direct

Marques

Utilisation de base

L'entrée slider prend en charge l'affichage de marques sur la piste de l'entrée. En définissant la propriété marks sur true, des marques seront rendues à chaque intervalle de steps.

Charger l'exemple en direct

Avec des étiquettes

Vous pouvez activer des étiquettes pour vos marques en définissant la propriété mark-labels sur true.

Charger l'exemple en direct

Marques personnalisées

En fournissant un tableau d'objets à la propriété marks au lieu d'un booléen, vous pouvez placer des marques arbitraires sur la piste du curseur. Les objets de marque doivent avoir les propriétés suivantes :

  • at : La position (valeur) sur la piste où la marque doit être rendue.
  • label : L'étiquette à afficher pour la marque si la propriété mark-labels est activée.
Charger l'exemple en direct

Accrocher aux marques

Lorsque vous fournissez des marques personnalisées, vous pouvez vouloir forcer la sélection à s'accrocher aux marques fournies. Cela peut être réalisé avec la propriété snap-to-marks. Lorsque snap-to-marks est true, les événements du clavier passeront à la marque la plus proche et les valeurs entrées par le clavier ou les entrées liées s'accrocheront à la marque disponible la plus proche.

Charger l'exemple en direct

Graphique

Vous pouvez afficher un graphique à barres au-dessus du curseur avec des valeurs arbitraires en fournissant un tableau à la propriété chart. Le tableau chart a une structure similaire au tableau marks. Chaque objet imbriqué doit contenir :

  • at : La position (valeur) sur la piste où la barre du graphique doit être rendue.
  • value : Une valeur numérique qui sera utilisée pour calculer la hauteur relative de la barre dans le graphique.

L'entrée slider parcourra votre tableau chart et déterminera la plus grande value contenue dans le tableau, puis divisera toutes les autres valeurs par cette plus grande valeur pour déterminer les hauteurs relatives pour afficher les barres du graphique.

Charger l'exemple en direct

Exemple complet

En combinant les props fournies pour le composant slider, vous pouvez créer une entrée robuste pour couvrir une variété de cas d'utilisation. Voici un exemple pour un curseur de plage de prix.

Charger l'exemple en direct

Props & Attributs

PropTypePar défautDescription
chartarraynoneUn tableau d'objets contenant les clés at et value. Affiche un graphique à barres de hauteur relative au-dessus de la piste du curseur.
input-attrsobject{}Applique des attributs personnalisés aux entrées FormKit liées imbriquées pour les valeurs min et max.
marksboolean || arrayfalseLorsque true, affiche des marques sur la piste à chaque valeur de step. Lorsqu'un tableau d'objets avec des clés at et label, affiche une marque sur la piste à chaque valeur at de l'objet.
mark-labelsbooleanfalseActive l'affichage des étiquettes sous les marques sur la piste
maxnumber100La valeur maximale possible de la plage du curseur.
max-input-attrsobject{}Applique des attributs personnalisés à l'entrée FormKit liée imbriquée pour la valeur max.
minnumber0La valeur minimale possible de la plage du curseur.
min-input-attrsobject{}Applique des attributs personnalisés à l'entrée FormKit liée imbriquée pour la valeur min.
prefixstringnoneCaractères qui apparaîtront toujours au début de l'entrée.
show-inputbooleanfalseAffiche les entrées FormKit type="number" qui sont liées aux valeurs du curseur
snap-to-marksbooleanfalseLorsqu'il est activé, force la sélection de l'utilisateur à s'aligner sur les marques
stepnumber1La valeur minimale à laquelle la valeur du curseur peut s'incrémenter / décrémenter.
suffixstringnoneCaractères qui apparaîtront toujours à la fin de l'entrée.
tooltipbooleannoneLorsqu'il est défini avec une valeur booléenne, force l'affichage de l'infobulle(s) de la poignée du curseur.
tooltip-formatfunctionnoneUne fonction qui est fournie avec la value et la handle pour chaque poignée de curseur et qui doit retourner une string.
Afficher Universel props
configObject{}Options de configuration à fournir au nœud d'entrée et à tout nœud descendant de cette entrée.
delayNumber20Nombre de millisecondes à attendre avant que la valeur d'une entrée ne soit déclenchée avant que le commit hook ne soit déclenché.
dirtyBehaviorstringtouchedDétermine comment le drapeau "dirty" de cette entrée est défini. Peut être défini sur touched ou compare — touched (par défaut) est plus performant, mais ne détectera pas lorsque le formulaire correspond à nouveau à son état initial.
errorsArray[]Tableau de chaînes à afficher comme messages d'erreur sur ce champ.
helpString''Texte pour le texte d'aide associé à l'entrée.
idStringinput_{n}L'identifiant unique de l'entrée. Fournir un identifiant permet également d'accéder globalement au nœud de l'entrée.
ignoreBooleanfalseEmpêche une entrée d'être incluse dans un parent (groupe, liste, formulaire, etc). Utile lors de l'utilisation d'entrées pour l'interface utilisateur au lieu de valeurs réelles.
indexNumberundefinedPermet d'insérer une entrée à l'index donné si le parent est une liste. Si la valeur de l'entrée est indéfinie, elle hérite de la valeur de cette position d'index. Si elle a une valeur, elle l'insère dans les valeurs de la liste à l'index donné.
labelString''Texte pour l'élément label associé à l'entrée.
nameStringinput_{n}Le nom de l'entrée tel qu'identifié dans l'objet de données. Cela doit être unique au sein d'un groupe de champs.
parentFormKitNodecontextualPar défaut, le parent est un groupe d'enrobage, une liste ou un formulaire — mais cette propriété permet une affectation explicite du nœud parent.
prefix-iconString''Spécifie une icône à placer dans la section prefixIcon.
preservebooleanfalseConserve la valeur de l'entrée sur un groupe parent, une liste ou un formulaire lorsque l'entrée est démontée.
preserve-errorsbooleanfalsePar défaut, les erreurs définies sur les entrées à l'aide de setErrors sont automatiquement effacées lors de l'entrée, en définissant cette propriété sur true, l'erreur est maintenue jusqu'à ce qu'elle soit explicitement effacée.
sections-schemaObject{}Un objet de clés de section et de valeurs partielles de schéma, où chaque partie de schéma est appliquée à la section respective.
suffix-iconString''Spécifie une icône à placer dans la section suffixIcon.
typeStringtextLe type d'entrée à afficher à partir de la bibliothèque.
validationString, Array[]Les règles de validation à appliquer à l'entrée.
validation-visibilityStringblurDétermine quand afficher les règles de validation en échec d'une entrée. Les valeurs valides sont blur, dirty et live.
validation-labelString{label prop}Détermine quelle étiquette utiliser dans les messages d'erreur de validation, par défaut, elle utilise la propriété label si elle est disponible, sinon elle utilise la propriété name.
validation-rulesObject{}Règles de validation personnalisées supplémentaires à rendre disponibles pour la propriété de validation.
valueAnyundefinedInitialise la valeur initiale d'une entrée et/ou de ses enfants. Non réactif. Peut initialiser des groupes entiers (formulaires) et des listes..

Sections

Vous pouvez cibler une section spécifique d'une entrée en utilisant la "key" de cette section, ce qui vous permet de modifier les classes de cette section, le HTML (via :sections-schema) ou le contenu (via des emplacements)). En savoir plus sur les sections ici.

View on a larger screen to see this section diagram.

Choisissez votre fourchette de prix
Sélectionnez les emplacements disponibles par prix
📊
...
⚪
⚪
Vous devez fournir une évaluation.
Section-keyDescription
chartUn conteneur pour les éléments de la barre de graphique.
chartBarUne barre individuelle pour l'élément graphique.
fillLe remplissage pour la plage sélectionnée sur l'entrée du curseur.
handleMaxLa poignée de sélection de valeur maximale. C'est la poignée par défaut pour les entrées de curseur à valeur unique.
handleMinLa poignée de sélection de valeur minimale.
handlesUn conteneur pour les poignées de sélection de la piste
linkedValuesUn wrapper pour les entrées liées pour les valeurs minimale et maximale du curseur.
markUne marque individuelle sur la piste.
markLabelL'étiquette pour une marque individuelle sur la piste.
marksUn conteneur pour toutes les marques sur la piste
maxValueL'entrée de nombre FormKit liée pour la valeur maximale du curseur. Si le curseur n'a qu'une seule valeur, cela est rendu en tant que descendant direct de la section sliderInner.
minValueL'entrée de nombre FormKit liée pour la valeur minimale du curseur.
sliderInnerLa div intérieure qui contient le contenu de l'entrée du curseur.
trackUn wrapper qui contient tout le balisage de la piste pour l'entrée du curseur.
trackInnerUn wrapper intérieur à des fins de style qui contient tout le balisage de la piste à l'exclusion du graphique.
trackWrapperUn wrapper qui contient tout le balisage de la piste à l'exclusion du graphique.
tooltipMinL'infobulle pour la poignée de sélection de valeur minimale
tooltipMaxL'infobulle pour la poignée de sélection de valeur maximale
Afficher Universel section keys
outerL'élément d'enrobage le plus externe.
wrapperUn enrobage autour de l'étiquette et de l'entrée.
labelL'étiquette de l'entrée.
prefixN'a pas de sortie par défaut, mais permet du contenu directement avant un élément d'entrée.
prefixIconUn élément pour afficher une icône avant la section de préfixe.
innerUn enrobage autour de l'élément d'entrée réel.
suffixN'a pas de sortie par défaut, mais permet du contenu directement après un élément d'entrée.
suffixIconUn élément pour afficher une icône après la section de suffixe.
inputL'élément d'entrée lui-même.
helpL'élément contenant le texte d'aide.
messagesUn enrobage autour de tous les messages.
messageL'élément (ou plusieurs éléments) contenant un message — le plus souvent des messages de validation et d'erreur.