element.scrollTop
element.scrollTop 요소는 선택한 요소의 세로 스크롤 값을 가져오거나 설정합니다. element.scrollTop 속성은 박스 요소의 스크롤 값을 구하고 window.scrollY 속성은 브라우저의 스크롤 값을 구하는데 차이가 있으며, 부모 박스 안에 작은 박스가 크고 overflow 속성이 있을 때 스크롤 값을 구할 수 있습니다.
element.scrollTop
element.scrollTop 요소는 선택한 요소의 세로 스크롤 값을 가져오거나 설정합니다.
특징 | 설명 |
---|---|
유형(type) | element |
버전(version) | -- |
결과값(return) | None(undefined) |
사용성 | ★★★☆☆ |
문법(Syntax)
element.scrollTop
//속성 값을 가져오는 경우
document.getElementById("div").scrollTop;
//속성 값을 설정하는 경우
document.getElementById("div").scrollTop = 500;
정의(Definition)
- element.scrollTop 속성은 선택한 요소의 세로 스크롤 값을 가져오거나 설정합니다.
- element.scrollTop 속성은 박스 요소의 스크롤 값을 구하고 window.scrollY 속성은 브라우저의 스크롤 값을 구하는데 차이가 있습니다.
- element.scrollTop 속성은 부모 박스 안에 작은 박스가 크고 overflow 속성이 있을 때 스크롤 값을 구할 수 있습니다.
- element.scrollTop 속성은 스크롤 좌표 값을 가져올 수도 있고, 변경도 할 수 있습니다.
스크롤과 관련된 메서드(Scroll Related method)
- window.pageXOffset 속성은 선택한 요소의 가로 스크롤 값(브라우저 기준)을 가져옵니다.
- window.pageYOffset 속성은 선택한 요소의 세로 스크롤 값(브라우저 기준)을 가져옵니다.
- window.scrollX 속성은 선택한 요소의 가로 스크롤 값(브라우저 기준)을 가져옵니다.
- window.scrollY 속성은 선택한 요소의 세로 스크롤 값(브라우저 기준)을 가져옵니다.
- window.scroll() 메서드는 선택한 요소에 스크롤 값을 설정합니다.
- window.scrollTo() 메서드는 선택한 요소에 스크롤 값(상대 위치)을 설정합니다.
- window.scrollBy() 메서드는 선택한 요소에 스크롤 값(절대 위치)을 설정합니다.
- element.scrollLeft 속성은 선택한 요소에 가로 스크롤 값을 가져오거나 설정합니다.
- element.scrollTop 속성은 선택한 요소에 세로 스크롤 값을 가져오거나 설정합니다.
- element.scrollIntoView() 메서드는 선택한 요소를 기준으로 이동하거나 설정합니다.
위치 및 스크롤과 관련된 메서드(Position & Scroll Related method) - jQuery
- offset() 메서드는 선택한 요소의 위치 좌표 값(문서 기준)을 가져오거나 설정합니다.
- position() 메서드는 선택한 요소의 위치 좌표 값(기준점 기준)을 가져오거나 설정합니다.
- scrollLeft() 메서드는 선택한 요소의 가로 스크롤 값(브라우저 기준)을 가져오거나 설정합니다.
- scrollTop() 메서드는 선택한 요소의 세로 스크롤 값(브라우저 기준)을 가져오거나 설정합니다.
예제1(Sample)
박스 요소의 스크롤 위치 값을 구하는 예제입니다.
박스 안에서 스크롤 한번 해볼래?
0 px /
0 px
박스 안에서 스크롤을 하면 좌표 값을 표시합니다.
HTML
CSS
SCRIPT
<div class="jsample">
<div class="box">
<div class="small-box">
<span>박스 안에서 스크롤 한번 해볼래?</span>
</div>
</div>
<div class="desc">
<span class="h">0</span> px /
<span class="v">0</span> px
</div>
</div>
.jsample {
text-align: center;
}
.jsample .box {
margin: 20px auto;
width: 400px;
height: 200px;
background-color: #ddedff;
border: 1px solid #4390E1;
color: #4390E1;
padding: 20px;
position: relative;
overflow: auto;
}
.jsample .small-box {
width: 500px;
height: 260px;
background-color: #A2CBFA;
border: 1px dashed #4390E1;
display: flex;
align-items: center;
justify-content: center;
}
.jsample .box span {
color: #fff;
}
.jsample .desc {
color: #4390E1;
}
const box = document.querySelector("#sample1 .jsample .box");
box.addEventListener("scroll", () => {
const x = box.scrollLeft;
const y = box.scrollTop;
document.querySelector("#sample1 .jsample .desc .h").innerHTML = x.toFixed();
document.querySelector("#sample1 .jsample .desc .v").innerHTML = y.toFixed();
});
예제2(Sample)
박스 요소의 스크롤 위치 값을 변경하는 예제입니다.
small-box
리셋
버튼을 클릭하면 scrollLeft 값을 150으로 변경합니다.
버튼을 클릭하면 scrollTop 값을 150으로 변경합니다.
버튼을 클릭할 때마다 scrollLeft 값을 10씩 증가합니다.
버튼을 클릭할 때마다 scrollTop 값을 10씩 증가합니다.
HTML
CSS
SCRIPT
<div class="jsample">
<div class="box">
<div class="small-box">
<span>박스 안에서 스크롤 한번 해볼래?</span>
</div>
</div>
<div class="desc">
<span class="h">0</span> px /
<span class="v">0</span> px
</div>
</div>
.jsample {
text-align: center;
}
.jsample .box {
margin: 20px auto;
width: 400px;
height: 200px;
background-color: #ddedff;
border: 1px solid #4390E1;
color: #4390E1;
padding: 20px;
position: relative;
overflow: auto;
}
.jsample .small-box {
width: 500px;
height: 260px;
background-color: #A2CBFA;
border: 1px dashed #4390E1;
display: flex;
align-items: center;
justify-content: center;
}
.jsample .box span {
color: #fff;
}
.jsample .desc {
color: #4390E1;
}
document.querySelector("#sample2 .sampleBtn .btn0").addEventListener("click", (e) => {
e.preventDefault();
document.querySelector("#sample2 .jsample .box").scrollLeft = 0;
document.querySelector("#sample2 .jsample .box").scrollTop = 0;
});
document.querySelector("#sample2 .sampleBtn .btn1").addEventListener("click", (e) => {
e.preventDefault();
document.querySelector("#sample2 .jsample .box").scrollLeft = 100;
});
document.querySelector("#sample2 .sampleBtn .btn2").addEventListener("click", (e) => {
e.preventDefault();
document.querySelector("#sample2 .jsample .box").scrollTop = 100;
});
document.querySelector("#sample2 .sampleBtn .btn3").addEventListener("click", (e) => {
e.preventDefault();
document.querySelector("#sample2 .jsample .box").scrollLeft += 10;
});
document.querySelector("#sample2 .sampleBtn .btn4").addEventListener("click", (e) => {
e.preventDefault();
document.querySelector("#sample2 .jsample .box").scrollTop += 10;
});
호환성(Compatibility)
6 | 7 | 8 | 9 | 10 | 11 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
element.scrollTop | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |