Slider 구성 요소와 Range Slider 구성 요소의 주요 차이점은 Slider 구성 요소에는 엄지 손가락이 하나 있고 Range Slider 구성 요소에는 엄지 손가락이 두 개 있다는 것입니다. Slider 구성 요소의 단일 썸은 해당 value 속성을 표시합니다. Range Slider 구성 요소의 두 엄지손가락에는 lower 및 upper 속성이 표시됩니다.
값 중 하나가 변경되면 두 슬라이더 모두 두 개의 이벤트를 발생시킵니다. IgrInput 이벤트는 키보드나 드래그 상호작용을 사용하여 값이 변경될 때마다 발생하며, igcChange 이벤트는 드래그 끝이나 키보드 상호작용에서 값 변경이 커밋될 때 발생합니다.
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
슬라이더 썸을 드래그하는 동안 도구 설명에 해당 값이 표시됩니다. hideTooltip 속성을 사용하여 이 도구 설명을 숨길 수 있습니다.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
igc-slider {
padding: 30px30px0px30px;
}css
step 속성이 0으로 설정되면 단계별 실행이 암시되지 않으며 슬라이더 범위의 모든 값이 허용됩니다. 이 경우, discreteTrack true로 설정되어 있어도 슬라이더는 연속적으로 보입니다.
눈금 표시
슬라이더 구성 요소에는 눈금 표시와 레이블이 표시될 수 있습니다. 슬라이더 구성 요소는 기본 및 보조라는 두 가지 유형의 눈금 표시를 지원합니다. 기본 눈금 표시를 표시하려면 primaryTicks 속성을 1 보다 큰 값으로 설정해야 합니다. 기본 틱 수는 트랙에 고르게 분포됩니다. 보조 눈금 표시를 표시하려면 secondaryTicks 속성을 0 보다 큰 값으로 설정해야 합니다. secondaryTicks 값은 두 개의 기본 틱 사이의 보조 틱 수를 지정합니다.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
또한, tickOrientation 속성을 사용하여 눈금 표시의 방향을 구성할 수 있습니다. 기본적으로 tickOrientation 값은 슬라이더 트랙 아래에 틱을 표시하는 end 입니다. 트랙 위에 표시되는 start과 트랙 위와 아래의 틱을 미러링하는 mirror 설정할 수 있습니다.
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
레이블
어떤 경우에는 슬라이더 값을 문자열 값으로 형식화하려는 경우가 있습니다. 즉, [0, 1, 2] 값을 ['Low', 'Medium', 'High']에 매핑합니다. 이 시나리오에서는 슬라이더를 사용하여 내부에 IgrSliderLabel 요소를 정의할 수 있습니다. 슬라이더 레이블의 텍스트 내용은 썸 및 눈금 레이블에 사용됩니다. 슬라이더 레이블이 제공되면 제공된 레이블에 매핑되지 않는 값을 허용하지 않도록 min, max 및 step 속성이 자동으로 계산됩니다. 'Low', 'Medium', 'High' 라벨의 경우 min은 0, max는 2, step은 1로 설정됩니다.