DOM응용 및 심화
SVG와 관련된 메소드
getTotalLength()
- SVG파일의 총 길이를 가져오는 메소드
stroke-dasharray
와stroke-dashoffset
에 길이에 영향을 받지 않는다.
Scroll을 이용한 View의 길이를 구하는 메소드
scrollTop
- 현재 스크롤의 위치값을 반환
전체 화면의 크기를 5000px이라고 두었을 때, 스크롤을 최대한 내려보면 5000px이 아닌 4200px이 나온다.
body {
background-color: skyblue;
height: 5000px;
}
const scroll = document.documentElement.scrollTop;
window.addEventListener("scroll", function () {
const scroll = document.documentElement.scrollTop;
console.log(scroll);
});
body의 높이는 5000px이며, 스크롤의 시작점은 0이다.
스크롤을 제일 밑까지 내렸을 경우, scroll의 변수값은 5000이 아닌 4054px이 나온다.
빨간색은 body태그의 높이 5000px을 의미하며, 초록색은 보고있는 화면의 Viewport를 의미
scrollTop
지정한 요소의 제일 상단에서 시작한다.
즉, window객체를 지목하기 때문에 최상단에 표현이 된다.
결국 scroll을 전부 내렸다해도 scrollTop은 Viewport의 상단을 지목하고 있다.
결론은 body의 5000px에서 스크롤 전부내려도 scrollTop은 Viewport의 상단을 지목하고 있으며,
실제 출력된 화면의 높이(Viewport)가 포함되어 있지 않기 때문에 4054px이 출력된 것이다.
scrollHeight
- 전체 스크롤의 높이 값을 반환
body {
padding: 0;
margin: 0;
background-color: skyblue;
height: 5000px;
}
const scroll = document.documentElement.scrollTop;
window.addEventListener("scroll", function () {
const scroll = document.documentElement.scrollHeight;
console.log(scroll);
});
scroll을 출력하면 5000px이 출력된 것을 확인.
documentElement
기준으로 scrollHeight를 측정하기 때문에
HTML내부에 요소 혹은 브라우저의 기본 margin, padding 속성으로 height가 조금 다르게 출력될 수 있다.
documentElement
란?
- DOM문서의 최상위 요소인
<html>
요소를 나타내는 속성 - document 객체의 첫 번째 자식요소
- 문서의 최상위 요소에 쉽게 접근
clientHeight
- 현재 이용자가 보고 있는 Viewport의 크기(높이)
- 브라우저의 비율에 따라 ViewPort의 크기(높이)값이 달라진다.
DOM요소 속성 접근
- DOM을 이용하여 개개인의 요소에 접근이 가능
style
- 접근한 요소마다 CSS속성을 삽입/삭제/변경이 가능
body {
background-color: skyblue;
}
const body = document.querySelector("body");
body.style.backgroundColor = "red";
출력 결과를 보면 body태그의 background-color 속성이 red로 변경되어 출력.
JavaScript에서는 style요소 중 속성에 접근할 때, background-color
와 동일하게 작성이 불가능.
CSS속성이 -
로 작성되어 있는 경우, JavaScript에서는 -
의 바로 다음 글자를 대문자로 표기 (카멜케이스 표기법)
키보드 이벤트
- 키보드 입력 이벤트가 발생 되었을 때 사용하는 속성
const link = document.querySelector("a");
link.addEventListener("keydown", (e) => {
console.log(e);
});
keyup
와 keydown
의 차이점
keyup
: 키를 누르고 뗀 상태keydown
: 키를 처음 눌렀을 때 상태