Progress
Progress
프로그레스(Progress)는 작업의 진행 상태나 완료 비율을 시각적으로 보여주는 컴포넌트예요. 단일 막대는 물론 여러 막대를 함께 표시할 수 있고, 색상·크기·애니메이션 변형과 콜백도 지원해요.
출처: 문서
본문
Types
Standard
표준 프로그레스 바예요.
Uploading Files
Indicating
표시형(indicating) 프로그레스 바는 작업의 현재 진행 수준을 시각적으로 보여줘요.
Funding
Content
Bar
progress 요소는 진행을 시각적으로 나타내는 막대(bar)를 포함할 수 있어요.
Progress
프로그레스 바는 현재 진행을 나타내는 텍스트 값을 포함할 수 있어요.
Centered Progress Text
프로그레스 안의 텍스트는 중앙에 배치될 수 있어요.
Label
progress 요소는 라벨을 포함할 수 있어요.
Uploading Files
Multiple Bars
progress 요소는 여러 개의 막대를 가질 수 있어요.
Multiple Bars with Text (Proportion)
프로그레스 바는 현재 비율을 나타내는 텍스트 값을 포함할 수 있어요.
Tickets
$('.ui.multiple.progress').progress({
text: {
percent : '{bar} {percent}%',
bars: ['WIP', 'Review', 'Hold', 'Merged']
}
});
States
Active
프로그레스 바는 활동 중임을 보여줄 수 있어요.
Uploading Files
Success
프로그레스 바는 성공 상태를 보여줄 수 있어요.
Everything worked, your file is all ready.
Warning
프로그레스 바는 경고 상태를 보여줄 수 있어요.
Your file didn't meet the minimum resolution requirements.
Error
프로그레스 바는 오류 상태를 보여줄 수 있어요.
There was an error.
Disabled
프로그레스 바는 비활성화될 수 있어요.
Indeterminate
프로그레스 바는 다양한 불확정(indeterminate) 상태로 표시될 수 있어요.
The indeterminate progress state is not supposed to be used in combination with multiple progress bars
Pulsating (default)
Filling
Sliding
Swinging
불확정 프로그레스 상태는 여러 개의 프로그레스 바와 함께 사용해서는 안 돼요. 불확정 진행은 속도도 달라질 수 있어요.
Slow
Fast
Variations
Right aligned
프로그레스 바는 오른쪽 정렬되어 왼쪽으로 자랄 수 있어요.
Inverted
프로그레스 바는 색상이 반전될 수 있어요.
Uploading Files
Success
Warning
Error
Basic
basic 프로그레스는 남아 있는 배경 막대가 제거돼요.
Attached
프로그레스 바는 요소의 진행을 보여줄 수 있어요.
Project
Started in 2014
22 Friends
Size
프로그레스 바는 크기가 달라질 수 있어요.
Tiny
Small
Standard
Large
Big
Color
다양한 색상을 가질 수 있어요.
Inverted Color
이 색상들은 어두운 배경에서 대비를 개선하도록 inverted 될 수도 있어요.
Initializing a progress bar
With metadata
프로그레스 바는 메타데이터로 초기화할 수 있어요.
$('#example1').progress();
74% Funded
With Javascript
프로그레스 바는 Javascript 설정 객체로 초기화할 수 있어요.
$('#example2').progress({
percent: 22
});
22% Earned
Task Completion Percent
Adding a Total Value
프로그레스 바는 총값에 대한 현재 값의 비율을 추적할 수 있어요. 알려진 수량을 가진 일련의 이벤트 진행을 추적할 때 유용해요. (예: 사진 20장 중 1장 업로드).
$('#example3')
.progress('increment')
;
Adding Photos
$('#example3')
.progress({
total: 3
})
;
Initializing with Metadata
프로그레스 바는 총값에 대한 현재 값의 비율을 추적할 수 있어요. 알려진 수량을 가진 일련의 이벤트 진행을 추적할 때 유용해요. (예: 사진 20장 중 1장 업로드).
$('#example4')
.progress('increment')
;
Adding Photos
Adding Custom Labels
프로그레스 바의 각 상태에 대한 템플릿 텍스트를 전달할 수 있어요. 프로그레스 바가 그 상태에 도달하면 자동으로 업데이트돼요.
{percent}
Current percentage
{value}
Current value
{total}
Total value
{left}
Distance to total, or % progress left
$('#example5')
.progress('increment')
;
Adding Photos
$('#example5')
.progress({
text: {
active : 'Adding {value} of {total} photos',
success : '{total} Photos Uploaded!'
}
})
;
템플릿 토큰: {percent}(현재 퍼센트), {value}(현재 값), {total}(총값), {left}(총까지의 거리 또는 남은 %).
Translation
텍스트 라벨을 조정해 문자열을 번역된 것처럼 보이게 할 수도 있어요.
$('#example6')
.progress('increment')
;
Carga de archivos
$('#example6')
.progress({
label: 'ratio',
text: {
ratio: '{value} de {total}'
}
})
;
Behavior
다음 모든 행동들은 다음 구문을 사용해 호출할 수 있어요:
.ui.your.element')
.progress('behavior name', argumentOne, argumentTwo)
;
| 행동 | 설명 |
|---|---|
set percent(percent) |
현재 진행 퍼센트를 값으로 설정해요. total을 사용하면 percent에서 추정 값으로 변환해요. percent는 .ui.multiple.progress에서 [20,30,50] 같은 배열이나 '20,30,50' 같은 쉼표 구분 문자열일 수 있어요. |
set progress(value) |
진행을 지정된 값으로 설정해요. total에서 자동으로 percent를 계산해요. value는 배열이나 쉼표 구분 문자열일 수 있어요. |
increment(incrementValue) |
진행을 증가 값만큼 증가시켜요. 값을 전달하지 않으면 설정에 지정된 임의 양을 사용해요. |
decrement(decrementValue) |
진행을 감소 값만큼 감소시켜요. 값을 전달하지 않으면 설정에 지정된 임의 양을 사용해요. |
update progress(value) |
즉시 진행을 값으로 업데이트해요. 진행 애니메이션 간격 지연을 무시해요. |
complete(keepState) |
진행을 끝내고 로드를 100%로 설정해요. keepState를 true(기본 false)로 설정하면 진행을 100%로 올리지 않고 활성 애니메이션만 멈춰요. |
reset |
진행을 0으로 재설정해요. |
set total(total) |
total을 새 값으로 설정해요. |
get text(text) |
템플릿 문자열을 value, total, percent left, percent로 대체해요. |
get normalized value(value) |
total에 지정된 허용 범위 안의 정규화된 값을 반환해요. |
get percent |
마지막으로 지정된 대로 percent를 반환해요. |
get value |
현재 진행 값을 반환해요. |
get total |
total을 반환해요. |
is complete |
진행이 완료되었는지 반환해요. |
is success |
진행이 성공이었는지 반환해요. |
is warning |
진행이 경고 상태인지 반환해요. |
is error |
진행이 오류 상태인지 반환해요. |
is active |
진행이 활성 상태인지 반환해요. |
set active |
진행을 활성 상태로 설정해요. |
set warning(text, keepState) |
진행을 경고 상태로 설정해요. keepState를 true(기본 false)로 설정하면 프로그레스바 상태와 현재 퍼센트를 100%로 올리지 않고 유지해요. |
set success(text, keepState) |
진행을 성공 상태로 설정해요. |
set error(text, keepState) |
진행을 오류 상태로 설정해요. |
set duration(value) |
진행 애니메이션 속도를 변경해요. |
set label(text) |
진행 외부 라벨을 텍스트로 설정해요. |
set bar label(text) |
진행 막대 라벨을 텍스트로 설정해요. |
remove active / remove warning / remove success / remove error |
프로그레스에서 해당 상태를 제거해요. |
destroy |
인스턴스를 파괴하고 모든 이벤트를 제거해요. |
Examples
Frequently Updated Progress
프로그레스 바는 애니메이션을 완료한 후 마지막 진행 값을 자동으로 폴링해, UI 업데이트보다 업데이트 이벤트가 훨씬 자주 발생해도 애니메이션 이징이 매끄럽게 계속 동작하게 해요.
Rapidly Update
Waiting for you to press button
$('.rapid.example .ui.button')
.on('click', function() {
var
$progress = $('.rapid.example .ui.progress'),
$button = $(this),
updateEvent
;
// restart to zero
clearInterval(window.fakeProgress)
$progress.progress('reset');
// updates every 10ms until complete
window.fakeProgress = setInterval(function() {
$progress.progress('increment');
$button.text( $progress.progress('get value') );
// stop incrementing when complete
if($progress.progress('is complete')) {
clearInterval(window.fakeProgress)
}
}, 10);
})
;
$('.rapid.example .ui.progress')
.progress({
duration : 200,
total : 200,
text : {
active: '{value} of {total} done'
}
})
;
Progress Settings
Form 설정은 프로그레스 동작을 수정해요.
| 설정 | 기본값 | 설명 |
|---|---|---|
autoSuccess |
true |
진행이 완료될 때 성공 상태가 자동으로 트리거되어야 할지 여부예요. |
showActivity |
true |
증가될 때 진행이 자동으로 활동을 표시할지 여부예요. |
limitValues |
true |
true로 설정하면 100%를 초과하거나 0% 미만으로 계산되는 값을 조정해요. false로 설정하면 부적절한 값이 오류를 생성해요. |
label |
percent |
진행을 percent 또는 ratio로 표시하도록 설정할 수 있어요. 같은 이름의 해당 텍스트 템플릿과 일치해요. |
duration |
300 |
막대가 다음 값으로 애니메이션되는 밀리초예요. |
random |
{ min: 2, max: 5 } |
값을 지정하지 않고 증가할 때 임의 증가 값의 범위를 설정해요. |
precision |
0 |
계산된 진행의 소수점 정밀도예요. |
total |
false |
total 값을 설정하면 increment 호출마다 이 total에 가까워져요 (예: 1/20, 2/20...). |
value |
false |
현재 값을 설정해요. total이 지정되면 이것으로 total의 비율을 계산하고, percent라면 전체 percent가 돼요. |
Callbacks
Callbacks는 특정 행동 이후 발생할 함수를 지정해요.
| 콜백 | 매개변수 | 컨텍스트 | 설명 |
|---|---|---|---|
onChange |
percent, value, total | Progress | 퍼센트 변경 시 콜백이에요. |
onSuccess |
total | Progress | 성공 상태 시 콜백이에요. |
onActive |
value, total | Progress | 활성 상태 시 콜백이에요. |
onError |
value, total | Progress | 오류 상태 시 콜백이에요. |
onWarning |
value, total | Progress | 경고 상태 시 콜백이에요. |
DOM Settings
DOM 설정은 이 모듈이 DOM과 어떻게 인터페이스할지 지정해요.
| 설정 | 기본값 | 설명 |
|---|---|---|
namespace |
progress |
이벤트 네임스페이스예요. |
text |
{ active:false, error:false, success:false, warning:false, percent:'{percent}%', ratio:'{value} of {total}', bars:[] } |
각 상태의 텍스트 콘텐츠로, {percent}, {value}, {total}, {bar} 간단 템플릿을 사용해요. {bar}는 여러 막대에서 막대 이름을 표시하는 데 유용해요. 막대 이름은 text.bars가 문자열 배열 형태로 제공해요. 예: ['bar1', 'bar2']. |
regExp |
{ variable: /\{\$*[A-z0-9]+\}/g } |
모듈이 사용하는 정규식이에요. |
selector |
{ bar : '> .bar', label : '> .label', progress : '.bar > .progress' } |
모듈이 사용하는 선택자예요. |
metadata |
{ percent : 'percent', total : 'total', value : 'value' } |
모듈이 사용하는 DOM 메타데이터예요. |
className |
{ active : 'active', error : 'error', success : 'success', warning : 'warning' } |
상태에 스타일을 연결하는 데 사용되는 클래스 이름이에요. |
Debug Settings
Debug 설정은 콘솔에 대한 디버그 출력을 제어해요.
| 설정 | 기본값 | 설명 |
|---|---|---|
name |
Progress |
디버그 로그에 사용되는 이름이에요. |
silent |
false |
모든 콘솔 출력을 조용히 만들어요. |
debug |
false |
콘솔에 표준 디버그 출력을 제공해요. |
performance |
true |
콘솔에 표준 디버그 출력을 제공해요. |
verbose |
false |
콘솔에 보조 디버그 출력을 제공해요. |
errors |
{ method:'The method you called is not defined.', nonNumeric:'Progress value is non numeric', tooHigh:'Value specified is above 100%', tooLow:'Value specified is below 0%' } |
오류 메시지 설정이에요. |
더 알아보기 (Learn more)
프로그레스로 로딩 상태나 작업 진행률을 시각화할 수 있어요. total/value로 비율을 계산하고 템플릿 토큰으로 라벨을 꾸며 보세요. 로딩 요소는 Loader 문서도 함께 참고하세요.