ProgressBar Animation 


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Animation</title>
</head>
<style>
    *{
        margin0;
        padding0;
        box-sizingborder-box;
        outline0;
    }
    #skill_section h1{
        margin30px;
        text-aligncenter;
    }
    .container{
        width60%;
        margin20px auto
        margin-bottom20px;

    }
    .progress{
        width100%;
        height18px;
        margin-top10px;
        background-colorgray;
        border-radius10px;
    }
    .progress .progress_bar{
        width0%;
        opacity0;
        height100%;
        background-colorbrown;
        positionrelative;
        border-radius10px;
        transitionall .5s;
    }
    .progress_bar span{
       color:wheat;
        positionabsolute;
        top0;
        right0;

    }
    .image_section{
        backgroundurl('image1.jpg'no-repeat center;
        background-sizecover;
        height100vh;
        displayflex;
        justify-contentcenter;
        flex-directioncolumn;
        align-itemscenter;
    }
    h1,a{
        colorrgb(201916);
      
    }
    
</style>
<body>
    <div class="image_section">
        <h1> Welcome To Ruhul Amin</h1>
        <a href="">Click Me</a>
    </div>
    <div id="skill_section">
        <h1>Skill</h1>
        <div class="container">
            <p>HTML</p>
            <div class="progress">
                <div class="progress_bar" data-progress="60">
                    <span>60%</span>
                </div>
            </div>
        </div>
        <div class="container">
            <p>CSS</p>
            <div class="progress">
                <div class="progress_bar" data-progress="80">
                    <span>80%</span>
                </div>
            </div>
        </div>
        <div class="container">
            <p>JavaScript</p>
            <div class="progress">
                <div class="progress_bar" data-progress="70">
                    <span>70%</span>
                </div>
            </div>
        </div>
        <div class="container">
            <p>ReactJS</p>
            <div class="progress">
                <div class="progress_bar" data-progress="50">
                    <span>50%</span>
                </div>
            </div>
        </div>
    </div>
    <script>
        const skill_section=document.getElementById('skill_section')
        const progressBar = document.querySelectorAll('.progress_bar')

        function showProgress(){
            progressBar.forEach(element=>{
                const dataValue=element.dataset.progress;
                element.style.opacity=1;
                element.style.width=`${dataValue}%`;
            })
        }
        function hideProgress(){
            progressBar.forEach(element=>{
                element.style.opacity=0;
                element.style.width=0;
            })
        }

        window.addEventListener('scroll', ()=>{
           const sectionPos=skill_section.getBoundingClientRect().top;
           const screenPos=window.innerHeight;
           if(sectionPos<screenPos){
               showProgress()
           }
           else{
               hideProgress()
           }

        })
    </script>
</body>
</html>