순수 바닐라js로 progress bar 만들기

들블리셔·2021년 10월 22일

요즘 너무 바쁜다는것을 핑계로 벨로그에 글을 안올린지 너무나 오래됐습니다..

간간히 올려야지 하는 생각은 드는데 쉽지가 않네요.

오늘 알아볼 것은 스크롤에 따른 진행바 만들기 입니다.

<script>

	window.addEventListener("scroll", function(){
            const progressbar = document.querySelector(".progressbar");

            // 스크롤 한 값
            const currentValue = window.scrollY;

            // document 문서 전체 높이
            const documentHeight = document.documentElement.scrollHeight;
            
            // 보여지는 window의 높이
            const windowHeight = window.innerHeight;

            const currentPercent = currentValue / (documentHeight - windowHeight) * 100;
            progressbar.style.width = currentPercent + "%";
        })
</script>
        

위의 js 코드를 작성 하기 전에 html을 작성 해주고,

<span class="progressbar"></span>

css로 width를 0으로 해주고 background-color를 넣어 줍시다.

정확한 scroll값을 위해서

*{padding:0; margin:0; box-sizing: border-box;}

css에 넣어줍니다.

내가 스크롤한 값과 document문서의 전체높이와 처음에 보여지는 높이인 window.innerHeight를 빼고 곱하기100을 해주어 백분율을 나타내준 후 나눈값을 currentPercnet로 변수에 담아줍니다.

width값에 변수 + "%"

이렇게 되면 완성 입니다!

처음에 프로그레스바를 구현하기 위해서 구글링을 하면 바닐라자바스크립트로 만든것이 아닌 전부 jquery로 구현한 게시물만 있기에, 한 번 이것저것 해보고 시도해보았습니다! 감사합니다.

profile
나의 공부방

0개의 댓글