👉 문제 바로가기
Statistic: In a world of numbers, it is important to be able to interpret them correctly. Beautiful statistics help to capture these data.
통계: 숫자의 세계에서는 숫자를 올바르게 해석하는 것이 중요합니다. 아름다운 통계는 이러한 데이터를 포착하는 데 도움이 됩니다.
이건 뭐지...??
갑자기 꺾은선 그래프가 생겼다.
심지어 꼭지점에 마우스를 올리면 값이 스윽- 하고 표시되어야 한다.
앞서 풀었던 문제들과 결이 다르다...!! 일단 풀어보자.
우선 꺾은선 그래프의 라인을 만드는 방법을 알아야 한다.
저 그래프를 어떻게 만들 것이냐,
태그를 이용해 line
을 직접 만들어서 transform rotate
로 각도를 맞추는 방법
아무리 생각해도 이거슨 너무 바보같은 작업이라 Pass....
무엇인가 다른 방법이 있겠지!!! 서치한다😊
나는 이 방법을 선택했다^__^!!
찾아보니 꼭지점이 꺾이는 도형을 만들때는 svg polyline
태그를 이용하는 듯 했다.
꺾은선 그래프 그리기에 딱이었다...!!😲
나는 svg
를 .svg형태의 이미지로만 사용했었다.
그래서 직접 코드를 작성해서 사용한적은 없었기 때문에... w3schools 에서 공부를 좀 함!
The "polyline" element is used to create any shape that consists of only straight lines (that is connected at several points):
"polyline" 요소는 직선(여러 점에서 연결됨)으로만 구성된 모양을 만드는 데 사용됩니다.
출처: w3schools
<svg height="200" width="500">
<polyline points="20,20 40,25 60,40 80,120 120,140 200,180"
style="fill:none;stroke:black;stroke-width:3" />
</svg>
이런식으로 points
를 잡아 모양을 만드는 것이다.
fill
을 이용해 모양 안쪽에 색을 채울수도 있고,stroke
를 이용해 테두리 색상을 변경할수도 있다.stroke-width
를 사용해 테두리의 굵기도 변경할 수 있다.이를 이용해서 꺾은선 그래프를 만들었다!!
▽▽
<svg width="264" height="80">
<polyline class="red" points="9,46 50,12 90,23 130,11 171,38 211,48 251,19"></polyline>
</svg>
<svg width="264" height="80">
<polyline class="blue" points="9,61 50,50 90,65 130,55 171,61 211,74 251,64"></polyline>
</svg>
위치 잡는 포인트는 눈대중으로 접근이 불가해서 정답에서 가져왔다 ㅋㅋ
꼭지점은 생각보다 원시적인 방법으로 만들어야 했다.
원 7개를 모두 만든다음 각각의 위치에 하나하나 찍어줘야 한다 ㅋㅋ
그래도 여기까진 괜찮았는데, 여기서 문제..!! 😲
꼭지점에 마우스를 갖다 대면(:hover
), 툴팁(tooltip
)이 나와서 꼭지점이 가진 값을 띄워줘야 한다!!
그래서 나는
.tooltip {
...
bottom: 0;
opacity: 0;
visibility: hidden;
transition: all ease-out 0.4s;
}
...
.red_dots, .blue_dots { //(꼭지점 클라스명)
&:hover .tooltip {
bottom: 14px;
opacity: 1;
visibility: visible;
}
}
이렇게 bottom
과 opacity
를 이용해서 위치가 아래에서 위로 투명도 0 ~ 1
로 스-윽 하고 올라오는 효과를 주었다.
visibility
는 tooltip
이 띄워지지 않았을때 차지하는 영역을 제거하기 위해 사용했다.
display
로 주지 않은 이유는 display
는 transition
이 먹지 않기 때문이다. (이유가 궁금하다면 여기로!!)
그런데 이렇게 만드니 무엇인가 이상했다!
꼭지점에 마우스가 애매~ 하게 걸쳐져 있을때 tooltip
이 오류난것처럼 '덜그럭덜덜덜'하고 띄워지는 것이다🙄
transition
이 문제였다.
transition: bottom ease-out 0.4s, opacity ease-out 0.4s;
이렇게 바꿔주어야 했다! 아무래도 all
을 사용해서 다른 요소들도 다 transition
을 먹어버려서 그런것 같았다.
저렇게 bottom
과 opacity
에만 주니까 오류같은 효과가 사라졌다! 🥳
야호!! 문제 완성!! 🥳🎉
이번 문제는 눈으로 보다시피 간단한 문제는 아니었다!
지금까지 푼 5개의 문제중에 코드가 가장 길다 ㅋㅋ
svg
와 같은 내가 사용하지 않았던 태그와 몰랐던 속성들에 대해서 깊이 찾아보고 사용해 볼 수 있는 것이 이 챌린지의 장점인 것 같다. 👍
끝
지금 계속 보고 있는데 정말 대단하세요! 여기 있는 소스 제가 써도 될까요??
똑같이는 안하겠지만, 참고하고 싶어서요!