[JavaScript] scrollTop과 offset

Lpla

·

2019. 6. 11. 01:12

반응형

scrollTop은 현재 스크롤의 위치값을 나타낸다.

$(window).scrollTop();

 

이는 브라우저 상단에서 현재 스크롤까지 이동한 값을 나타내는 코드이다.

 

offset은 대상의 위치값을 나타낸다.

$('section').offset();

 

이는 section이라는 요소의 위치값을 나타내는 코드이다.

쉽게 말해 scrollTop은 가변적이고, offset은 고정적이다.

다만 offset이 항상 고정적인 것은 아닌데, 반응형에서 브라우저의 크기를 늘리거나 줄일 때 offset의 값도 변할 수 있다.

 

스크롤이 특정한 지점에 위치할 때, 이벤트가 발생하는 경우에 scrollTop과 offset이 모두 쓰인다.

var section2Offset = $('#section2').offset();
    $(window).scroll(function () {
        if ($(window).scrollTop() > section2Offset.top) {
            $('.progress-bar').attr("style", "width:75%");
        } else {
            $('.progress-bar').attr("style", "width:0%");
        }
    });

 

이는 #section2 의 offset 값을 구하고, offset의 top값이 스크롤보다 작을 때,

.progress-bar에 width:75%라는 스타일을 추가하고,

그렇지 않을 때, width:0%로 변경하는 코드이다.

반응형