๋๋ ์ฃผ๋ณ์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๊ณ ์ํ๊ณ , ๊ธฐ๋ฅ์ ๊ตฌํํด์ ๋ฐฐํฌํ๋ ๊ฒ์ ๊ฟ๊พธ์ด ์๊ณ , ์ด๋ฒ ์กธ์
์๊ฑด ์ฌ์ดํธ๋ฅผ ๋ง๋ค๋ฉด์ ๊ทธ ๊ฟ์ ์คํํด ๋ณด์๋ค.
๊ณ๊ธฐ
๋๊ธฐ ํ ์ค์ ์กธ์
์ ์๋๊ณ ์๋ ํ์ด ์์๋ค. ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก, ์๊ฐ์ ์ฒญ์ ํ ๋ ์ฆ์์ด์๋ค.
3ํ๋
์ ์๋๊ณ ์์๊ธฐ ๋๋ฌธ์, ์กธ์
์๊ฑด์ ๋ฐ์ ธ๊ฐ๋ฉด์ ์ด๋ค ๊ณผ๋ชฉ์ ์๊ฐํด์ผ ํ๋์ง ๊ผผ๊ผผํ ๋ฐ์ ธ๋ณด๋ฉฐ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ด์ ๊ณผ๋ชฉ์ ๊ณ ๋ฏผํ๊ณ ์์๋ค.
์ฃผ๋ณ์ ๋ฌธ์ ๋ค์ ๋์ ๋ถ์ ์ผ๊ณ ์ฐพ๊ณ ์์๋ ๋๋ผ, ๊ฐ๋ฐํ๊ธฐ ๋๋ฌด ์ข์ ํ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ฒค์น๋งํน
์น ์ฌ์ดํธ๋ฅผ ์ ์ํ๊ธฐ ์ ์, ๋จผ์ ๋ง๋ค์ด์ ธ ์๋ ์ฌ์ดํธ๋ฅผ ๋๋ฌ๋ดค๋ค.
์ธ์ข
๋ํ๊ต์ ์กธ์
์๊ฑด ๊ฒ์ฌ ์ฌ์ดํธ์ธ Please Graduate.
์ฌ์ดํธ๊ฐ ์ ๋ง ์ ๋์ด์๋ค๊ณ ์๊ฐํด์ ๋ฒค์น๋งํนํ๊ณ ์น์ฌ์ดํธ๋ฅผ ์ ์ํ๋ค.
ํ์๋ ์ฌ์ดํธ ๊ฐ๋ฐ์์ ์ปจํ์ด ๋์ด ์๊ฐ๋ ํ๋ค.
์ญํ
์ฌ์ค ๋๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๊ณ ์ฒ์๋ถํฐ ๋ฐฑ์๋ ์์
์ ํ๊ณ ์ถ์๋ค.
ํ์ง๋ง ํ์๋ค์ ๋ชจ์ผ๋ค ๋ณด๋, ์์ ์ธ๋ก ํ๋ก ํธ ์๋ฆฌ๊ฐ ๋ถ์กฑํ๋ค.
๋ง์นจ ๋๋ ์น์ฌ์ดํธ ํ๋ก ํธ ๋ถ๋ถ์ ํ ๋ฒ๋ ํด๋ณด์ง ์์๊ธฐ ๋๋ฌธ์, ๋ฐฑ์๋ ๊ฐ๋ฐ์์ฌ๋ ํ์ํ ์ง์๋ถ์ผ๋ผ๊ณ ์๊ฐํ๋ค. ์ํฉ๋ ์ด๋ฌํ์ง๋ผ ํ๋ก ํธ ์์
์ ํ๊ธฐ๋ก ํ๋ค.
ํ๋ก ํธ ๊ณต๋ถ
ํ๋ก ํธ์ ๋ํ ์์ฃผ ์์ฃผ ๊ธฐ์ด๋ง ์๊ณ ์์๊ธฐ ๋๋ฌธ์, ๋ ๊น์ ๊ณต๋ถ๊ฐ ํ์ํ๋ค.
๊ธฐ์ด ๊ฐ๋
์ TCP School์ ์ด์ฉํ๋ค.
http://www.tcpschool.com/html/intro
์ด์ธ์, ๋ง์นจ ์ธํ๋ฐ์์ css๊ฐ์๊ฐ ์ธ์ผํ๊ธธ๋ ๊ตฌ์
ํด์ ๋ค์ด๋ณด์๋ค.
๊ทธ๋ฆฌ๊ณ ์ญ์ ํ์ํ ๋ถ๋ถ์ด ์๊ธธ ๋ ๋ง๋ค ๊ตฌ๊ธ๋ง์ ํตํด ํด๋ต์ ์ป์๋ค.
๋ด๋ชจํผ์ฆ ์คํ์ผ
๋๋ ์ฌ์ดํธ์ ์ค์ํ ๋ถ๋ถ์ธ ๊ฒ์ฌ ๊ฒฐ๊ณผ ํ์ด์ง, ๊ต์ ์ถ์ฒ ํ์ด์ง๋ฅผ ๋งก์๋ค.
๊ต์ ์ถ์ฒ ํ์ด์ง๋ ๋ง๋ค๋ค๊ฐ ๋ณด๋ฅํด๋์๋ค.
๋ง์นจ ์งํํ๋ ํ๋ก์ ํธ์ ๋์์ด๋๋ถ์ด ๊ณ์ ์ ์กฐ์ธ์ ๊ตฌํ๋ฉฐ ๋ด๋ชจํผ์ฆ ์คํ์ผ๋ก ๊ฒฐ๊ณผ ํ์ด์ง๋ฅผ ๊ตฌ์ฑํด ๋ณด์๋ค.
๋ฐ์ค css
.resultbox {
display: flex;
flex-direction: column;
width: 600px;
height: 300px;
margin: 45px 35px 20px;
border-style: solid;
border-width: 1px;
border-radius: 20px;
background: linear-gradient(125deg,#E8EBF2,#F2F3F7);
border: 1px solid white;
box-shadow: 10px 15px 30px #dddedf;
perspective-origin: 50% 50%;
perspective: 400px;
/* fade */
display: inline-block;
padding: 10px;
animation: fadein 2s;
-moz-animation: fadein 2s; /* Firefox */
-webkit-animation: fadein 2s; /* Safari and Chrome */
-o-animation: fadein 2s; /* Opera */
}
๋จผ์ ํญ๋ชฉ๋ค์ ์ธ๋ก๋ก ๋์ดํ๊ณ , ์ ๊ทธ๋ํ๋ฅผ ํตํด ์ผ๋ง๋ ์๋ฃ๋์๋์ง ์ง๊ด์ ์ผ๋ก ํ์ธํ ์ ์๊ฒ ๋ฐฐ์นํ๋ค.
display: flex;
flex-direction: column;
๋ ์์ฑ์ ์ฌ์ฉํ์ฌ ์ธ๋ก๋ก ๋ฐฐ์นํ๊ณ , ๋ด๋ถ ๋ฐ์ค์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ์ฌ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ ๋ ฌ๋๊ฒ ๋ง๋ค์๋ค.
border-style: solid;
border-width: 1px;
border-radius: 20px;
background: linear-gradient(125deg,#E8EBF2,#F2F3F7);
border: 1px solid white;
box-shadow: 10px 15px 30px #dddedf;
๋ด๋ชจํผ์ฆ ์คํ์ผ์ ์ ์ฉ์ํจ ๋ถ๋ถ์ด๋ค. ์์ํ๊ฒ ๋ ์๋ ํจ๊ณผ๋ฅผ ์ฃผ๊ธฐ ์ํด box-shadow์ ์์น์ ํจ๊ณผ๋ฅผ ์ ์ ํ๊ฒ ์กฐํฉํด์ผ ํ๋ค.
์ถ๊ฐ๋ก, ์ฌ์ดํธ์ ๋ค์ด์์ ๋ fadeํจ๊ณผ๋ฅผ ๋ฃ์ด์ฃผ์๋ค.
์์ด์ฝ์ fontawesome์ ๋ฌด๋ฃ ์์ด์ฝ์ ์ด์ฉํ๋ค.
์ ๊ทธ๋ํ
css
/* piechart */
.pie-chart {
position: relative;
background-color: #E8EBF2;
/* display:inline-block; */
width: 120px;
height: 120px;
border-radius: 50%;
transition: 0.3s;
margin-left: 15px;
box-shadow: 1px 1px 6px 4px #cacacc inset;
display:flex;
align-items: center;
justify-content: center;
}
.pie-chart-color{
width: 80%;
height: 80%;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.pie-chart-inner{
background-color: #E8EBF2;
width: 83%;
height: 83%;
border-radius: 50%;
}
span.center{
background: #E8E9ED;
/* display : block; */
position: absolute;
top:50%; left:50%;
width:50px; height:50px;
border-radius: 50%;
text-align:center;
line-height: 50px;
font-size:13px;
font-weight: bold;
color: #0066FF;
font-weight: bold;
transform: translate(-50%, -50%);
box-shadow: 2px 2px 10px 4px #bebec0;
}
js
//pie-chart
function draw(max, classname, colorname){
var i=1;
var func1 = setInterval(function(){
if(i<max){
color1(i,classname,colorname);
i++;
} else{
clearInterval(func1);
}
},20);
}
function color1(i, classname,colorname){
$(classname).css({
"background":"conic-gradient(rgba(0, 102, 255, 0.1) 0%, rgba(0, 102, 255, 1) "+i+"%, rgb(232, 235, 242) "+i+"%, rgb(232, 235, 242) 100%)"
});
}
์ ๊ทธ๋ํ๋ div 3๊ฐ๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ค์๋ค. ๋ด๋ชจํผ์ฆ ์คํ์ผ์ ์งํค๋ฉฐ box-shadow๋ฅผ ๋ฃ์ด์ฃผ๊ณ , ์ ์ค๊ฐ์ ํผ์ผํธ๊ฐ ๋ํ๋๊ฒ ์ ์ํ๋ค.
์ถ๊ฐ๋ก js Interval์ ์ด์ฉํ์ฌ ๊ทธ๋ํ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ฐจ์ค๋ฅด๋ ํจ๊ณผ๋ฅผ ์ฐ์ถํ๋ค.
์นด์ดํธ ์ ๋๋ฉ์ด์
$('.count').each(function() {
var $this = $(this),
countTo = $this.attr('data-count');
$({ countNum: $this.text()}).animate({
countNum: countTo
},
{
duration: 1500, // ์ ๋๋ฉ์ด์
์ด ์๋ฃ๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
easing:'linear', // ์ ๋๋ฉ์ด์
ํจ๊ณผ ๋ฐฉ์
step: function() { // ์์ง์ ๊ฐ ์คํ
๋ณ๋ก ์คํ๋ ํจ์
$this.text(Math.floor(this.countNum));
},
complete: function() { // ์์ง์์ด ๋ฉ์ถ ํ ์คํ๋ ํจ์
$this.text(this.countNum);
// this.countNum์ด $this์ text๊ฐ์ด ๋๋ค
}
});
});
์นด์ดํธ ์ ๋๋ฉ์ด์ ์ ํตํด, ์ซ์๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ฌ๋ผ๊ฐ๋ ํจ๊ณผ๋ฅผ ์ฐ์ถํ๋ค.
'FrontEnd > HTML | JS | CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vanilla JS] ๋ฐํ ์ํธ(Bottom Sheet) ๊ตฌํํ๊ธฐ (0) | 2023.09.02 |
---|---|
[Vanilla JS] html, css, js ์ฌ๋ผ์ด๋ ๊ตฌํํ๊ธฐ (0) | 2023.09.02 |
๋ทํ๋ฆญ์ค ๋์์ธ์ผ๋ก ํฌํธํด๋ฆฌ์ค ๋ง๋ค๊ธฐ (0) | 2023.09.01 |