특히 인터랙티브한 이미지 구현을 원하는 분들이라면 꼭 봐야하는 것이 스크롤을 다루는 것이라고 생각한다.
사실 매번 찾아봐도 나쁠건 없지만 작업속도 등을 고려하면 기본적인 것은 미리 익혀두는 것이 좋을 것 같다.
읽기 전용 메소드
요소의 border, scrollbar, margin을 제외하고, padding을 포함한 현재 보이는 부분에 대한 너비와 높이를 반환한다.
=> 즉, Content의 전체 크기가 아닌 가려진 부분을 제외한 보여지는 요소의 크기만 반환 한다.
반올림 되어서 정수 값을 반환한다.
⇒ 더 정확한 소수점 이하의 값을 얻기 위해서는 아래 코드를 사용한다.
element.getBoundingClientRect( )
읽기 전용 메소드
요소의 border, scrollbar, margin을 제외하고 padding을 포함한 요소 컨텐츠의 전체 크기를 반환한다.
요소의 크기가 요소 컨텐츠 크기보다 작을 경우에도 요소의 크기를 벗어난 컨텐츠 크기도 반영되어서 전체 컨텐츠 크기를 알 수 있다!!
정수로 반올림 된 값을 반환한다
⇒ 정확한 소수점 이하 값을 얻고 싶다면 아래를 사용해야한다
element.getBoundingClientRect( )
요소의 margin을 제외하고 padding, border를 포함한 너비와 높이를 반환한다.
의사요소(psedu-elements) 등의 크기는 포함 되지 않는다.
display : hidden; 상태에서는 0을 반환한다
정수로 반올림 된 값을 반환한다
⇒ 정확한 소수점 이하 값을 얻고 싶다면 아래를 사용해야한다
element.getBoundingClientRect( )
window.addEventListener('scroll', function() {
output.innerHTML = myImage.getBoundingClientRect()
})
이렇게 해보면 bottom, height, left, top, width, x, y 등이 나온다
explorer에서는 x, y 값을 지원하지 않으므로 다양한 곳에 적용되어지는 top, left를 사용하는 것이 안전 할 것이다.