Los componentes React Slider y Range Slider permiten seleccionar dentro de un rango determinado moviendo el pulgar a lo largo de la pista. La pista se puede definir como continua o escalonada y se puede elegir entre control deslizante simple o de rango.
Ejemplo de control deslizante de rango y control deslizante React
¿Te gusta este ejemplo? Obtén acceso a nuestro kit de herramientas completo Ignite UI for React y comienza a crear tus propias aplicaciones en minutos. Descárgalo gratis.
Uso
Primero, debes instalar el paquete npm Ignite UI for React correspondiente ejecutando el siguiente comando:
npm install igniteui-react
cmd
Luego necesitarás importar IgrSlider e IgrRangeSlider, su CSS necesario y registrar su módulo, así:
La principal diferencia entre los componentes Control deslizante y Control deslizante de rango es que el componente Control deslizante tiene un solo pulgar, mientras que el componente Control deslizante de rango tiene dos pulgares. El pulgar único del componente Control deslizante muestra su propiedad value. Los dos pulgares del componente Control deslizante de rango muestran sus propiedades de valor lower e upper.
Ambos controles deslizantes emiten dos eventos cuando se cambia cualquiera de los valores. El evento IgrInput se emite cada vez que se cambia un valor usando el teclado o la interacción de arrastre, mientras que el evento igcChange se emite cuando el cambio de valor se confirma al final del arrastre o la interacción del teclado.
EXAMPLE
TSX
CSS
importReactfrom'react';
importReactDOMfrom'react-dom/client';
import'./index.css';
import { IgrSlider, IgrSliderModule, IgrRangeSlider, IgrRangeSliderModule } from"@infragistics/igniteui-react";
import'igniteui-webcomponents/themes/light/bootstrap.css';
IgrSliderModule.register();
IgrRangeSliderModule.register();
exportdefaultclass SliderValue extendsReact.Component<any, any> {
public slider: IgrSlider;
public rangeSlider: IgrRangeSlider;
public sliderValueSpan: HTMLElement;
public sliderLowerSpan: HTMLElement;
public sliderUpperSpan: HTMLElement;
constructor(props: any) {
super(props);
this.onInput = this.onInput.bind(this);
this.onRangeInput = this.onRangeInput.bind(this);
this.sliderRef = this.sliderRef.bind(this);
this.rangeSliderRef = this.rangeSliderRef.bind(this);
this.sliderValueSpan = document.getElementById('slider-value') as HTMLElement;
this.sliderLowerSpan = document.getElementById('slider-lower') as HTMLElement;
this.sliderUpperSpan = document.getElementById('slider-upper') as HTMLElement;
}
publicrender(): JSX.Element {
return (
<divclassName="container sample"><divclassName="slider-component"><IgrSliderstyle={{padding: "30px30px0px30px"}} ref={this.sliderRef}input={this.onInput}value="40" /><divstyle={{paddingLeft: "30px", display: "flex"}}><spanstyle={{whiteSpace: "pre"}}>Value:</span><spanid="slider-value"></span></div><IgrRangeSliderstyle={{padding: "30px30px0px30px"}} ref={this.rangeSliderRef}input={this.onRangeInput}lower="20"upper="70"></IgrRangeSlider><divstyle={{paddingLeft: "30px", display: "flex"}}><spanstyle={{whiteSpace: "pre"}}>Lower:</span><spanid="slider-lower">20</span><spanstyle={{whiteSpace: "pre"}}>, Upper:</span><spanid="slider-upper">70</span></div></div></div>
);
}
public sliderRef(slider: IgrSlider){
if (!slider) { return; }
this.slider = slider;
}
public rangeSliderRef(slider: IgrRangeSlider){
if (!slider) { return; }
this.rangeSlider = slider;
}
public onInput(ev: any){
if(!ev) { return; }
//this.sliderValueSpan.innerHTML = ev.detail;
}
public onRangeInput(ev: any){
// this.sliderLowerSpan.innerHTML = ev.detail.lower;// this.sliderUpperSpan.innerHTML = ev.detail.upper;
}
}
// rendering above class to the React DOMconstroot = ReactDOM.createRoot(document.getElementById('root'));
root.render(<SliderValue/>);
tsx
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
Mientras arrastra el pulgar del control deslizante, muestra su valor en una información sobre herramientas. Puede ocultar esta información sobre herramientas utilizando la propiedad hideTooltip.
Desactivado
Puede utilizar la propiedad disabled de los controles deslizantes para deshabilitar las interacciones de sus usuarios.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
igc-slider {
padding: 30px30px0px30px;
}css
Restricciones
La pista de los controles deslizantes tiene valores mínimo y máximo que se configuran utilizando las propiedades min y max. Además, puede restringir el arrastre con el pulgar utilizando las propiedades lowerBound y upperBound.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
igc-slider {
padding: 30px30px0px30px;
}css
Paso
La propiedad step especifica la granularidad del control deslizante que debe cumplir el valor. De forma predeterminada, la pista del control deslizante parece continua. Establecer la propiedad discreteTrack del control deslizante en verdadero hará que se muestren los pasos en la pista.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
igc-slider {
padding: 30px30px0px30px;
}css
Si la propiedad step se establece en 0, no se implica ningún paso y se permite cualquier valor en el rango del control deslizante. En este caso, el control deslizante se verá continuo incluso si discreteTrack está configurado en verdadero.
Marcas de verificación
Los componentes del control deslizante podrían mostrar marcas y etiquetas. Los componentes del control deslizante admiten dos tipos de marcas: primaria y secundaria. Para mostrar las marcas de verificación principales, debe establecer la propiedad primaryTicks en un valor mayor que 1. El número de ticks primarios se distribuirá uniformemente en la pista. Para mostrar las marcas de verificación secundarias, debe establecer la propiedad secondaryTicks en un valor mayor que 0. El valor de secondaryTicks especifica el número de ticks secundarios entre cada dos ticks primarios.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
Además, puede configurar la orientación de las marcas utilizando la propiedad tickOrientation. De forma predeterminada, el valor tickOrientation es end, lo que muestra las marcas debajo de la pista del control deslizante. Puede configurarlo para que start, lo que los muestra encima de la pista, y mirror, que refleja las marcas encima y debajo de la pista.
De forma predeterminada, las marcas de verificación muestran etiquetas con sus valores. Puede modificar la rotación de las etiquetas de marca utilizando la propiedad tickLabelRotation. Además, puede ocultar las etiquetas de las marcas primarias y secundarias utilizando las propiedades hidePrimaryLabels y hideSecondaryLabels.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
Formato de valor
Si desea formatear los valores de las etiquetas de pulgar y marca, el control deslizante proporciona valueFormat, valueFormatOptions y propiedades locale. Las valueFormatOptions le permiten especificar el número de fracciones y dígitos significativos, el estilo (decimal, moneda, porcentaje, unidad), notación y otros teniendo en cuenta la locale especificada. valueFormat es una cadena que puede contener el identificador {0} que será reemplazado por el valor con las opciones de formato aplicadas.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
Etiquetas
En algunos casos, querrá formatear los valores del control deslizante como valores de cadena, es decir, asignar los valores [0, 1, 2] a ['Bajo', 'Medio', 'Alto']. Para este escenario, el control deslizante le permite definir elementos IgrSliderLabel dentro de él. El contenido de texto de las etiquetas del control deslizante se utilizará para las etiquetas de pulgar y marca. Tenga en cuenta que cuando se proporcionan etiquetas de control deslizante, las propiedades min, max y step se calculan automáticamente para que no permitan valores que no se correspondan con las etiquetas proporcionadas. En el caso de las etiquetas 'Bajo', 'Medio' y 'Alto', min se establece en 0, max se establece en 2 y step se establece en 1.