Html+CSS+JS

Html + CSS로 간단한 애니메이션 Bar Chart 만들기

GRIMTONG 2021. 2. 7. 00:43
반응형

웹개발을 하다 보면 챠트를 사용하는 경우가 종종 있다.  하지만 간단한 Bar 챠트를 사용하기 위해

Chart.js 또는 기타 챠트 라이브러리를 사용하기가 비효율적일때 사용하면 적당한 방법이다.

 

CSS를 통해 애니메이션은 덤이고 아주 쉽게 만들수 있는 예제로 각 상황에 맞게 수정해서 사용하면 된다.

 

<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
 </head>
 <body>
  <div class="graphWrap">
    <div id="barChart" class="barChart">
      <div id="chartValue">0</div>
    </div>
  </div>
  <style>
    div.graphWrap{
      position:relative; width:400px; height:250px;
      background-color:#EEEEEE;
    }
    div.barChart{
      position: absolute;
      left:50%; 
      bottom:0px; width:30px;
      height:200px;
      perspective-origin: center bottom ;
      transform: translate(-50%) scaleX(2);
      background-color:#9999ff;
      border-radius:15px;
      transition:height 0.25s;
    }
    div.barChart::before{
      position: absolute;
      content:"";
      width:30px; height:30px; border-radius: 100%;
      background-color:rgba(255,255,255,0.25);
    }
    div.barChart::after{
      position: absolute;
      content:"";
      width:30px; height:30px; bottom:0; 
      border-radius: 100%;
      background-color:rgba(0,0,0,0.15);
    }
    div#chartValue{
      position: absolute; left:50%;
      transform: scaleX(0.5) translateX(-100%) rotate(-0.03deg) translateY(-15px); text-align:center;
      font-weight:bold; font-size:24px; color:#000000;
      filter:drop-shadow(0px 5px 3px rgba(0,0,0,0.25));
    }
  </style>
  <script>
    var tmpH;
    setInterval(()=>{
      tmpH = (Math.random()*150+50);
      document.getElementById("barChart").style.height = tmpH + "px";
      document.getElementById("chartValue").innerText = Math.round(tmpH);
    }, 1000 );
  </script>
 </body>
</html>

 

반응형