250점 만점에 내 점수가 120점이라면 그래프에는 어떻게 표시해야할까?
- 각 그래프 바 마다 해당하는 점수를 data-num 속성에 저장.
<div class="progress_wrap">
<p>진단결과</p>
<div class="space_between">
<div class="width90">
<div class="progress_bar">
<div id="bar1" class="bar1" data-num="250"></div>
</div>
</div>
<div class="width10">
<span>총점: 250점</span>
</div>
</div>
<div class="space_between">
<div class="width90">
<div class="progress_bar width100">
<div id="bar2" class="bar2" data-num="100"></div>
</div>
</div>
<div class="width10">
<span>평균: 100점</span>
</div>
</div>
<div class="space_between">
<div class="width90">
<div class="progress_bar width100">
<div id="bar3" class="bar3" data-num="120"></div>
</div>
</div>
<div class="width10">
<span>내 점수: 120점</span>
</div>
</div>
</div>
//base
.width100{
width: 100%;
}
.width90{
width: 90%
}
.space_between{
display: flex;
justify-content: space-between;
align-items: center;
}
//그래프 스타일
.progress_wrap {
display: flex;
justify-content: space-between;
align-items: center;
}
.progress_bar_wrap {
height: 20px;
border: 1px solid #cfcfcf;
border-radius: 4px;
overflow: hidden;
}
.progress_bar {
height: 100%;
background: #a7a7a7;
}
- 퍼센트를 계산하는 함수를 작성
- 반복문을 사용해 각 bar와, bar의 data-num 값을 변수로 잡음.
- 변수를 함수에 넣어 실행
//반복문으로 각각의 bar의 값을 가져오고 너비를 설정
for (i = 1; i < 4; i++) {
var ele = $("#bar" + i);
var num = ele.data("num");
progressBarWidth(ele, num);
}
//퍼센트를 계산하는 함수
function progressBarWidth(ele, n) {
var progressBarWidth = (n / 250) * 100;
ele.css("width", progressBarWidth + "%");
}
'Cod-ing > JavaScript' 카테고리의 다른 글
[JavaScript] 10분마다 실행되는 함수 (0) | 2023.10.18 |
---|---|
[JavaScript] PDF다운로드 기능 구현하기 (html2pdf) 오류 해결! (0) | 2023.09.21 |
[JavaScript] PDF다운로드 기능 구현하기 ( html2pdf ) (0) | 2023.09.18 |
[JavaScript] 전개구문(Spread syntax)이란? (0) | 2023.09.17 |
[JavaScript] 구조분해할당이란? (0) | 2023.08.27 |