Browser_event_scrolling
#
Scrollingwindow 나 scrollable elements 의 스크롤링에 반응하는 이벤트
현재 스크롤을 보여주는 함수
스크롤의 활용
- 문서에서 사용자가 있는 위치에 따라 추가 컨트롤 또는 정보를 표시하거나 숨기는 기능
- 사용자가 페이지 아래끝으로 스크롤하면 더 많은 데이터를 로드하는 기능
#
scrolling 방지 방법- 스크롤 이벤트가 일어 난후
onscroll
리스너에event.preventDefault()
를 한다. - CSS
overflow
속성을 이용
#
Endless page#
스크롤의 두가지 중요한 특징elastic 탄력적
- 일부 브라우저/디바이스 에서는, document 의 시작 또는 끝을 약간 넘어서 스크롤 할 수 있다.
- 빈 공간이 표시가 되고 document 가 자동으로 bounces back 된다.
imprecise 부정확성
- 페이지의 끝으로 스크롤 하였을 때, 실제 document 의 하단에서 0-50px 정도의 오차가 존재한다.
Element.getBoundingClientRect()#
DOMRect 요소의 크기 및 뷰포트를 기준으로 한 위치에 대한 정보를 제공 하는 객체를 반환합니다 .
- 브라우저 용어에서, 현재 창 (또는 문서를 전체 화면 모드로 보는 경우 화면)에 표시되는 현재보고있는 문서의 부분을 나타냅니다.
- 뷰포트 외부의 콘텐츠는 스크롤 할 때까지 화면에 표시되지 않습니다.
페이지가 아래로 스크롤 되는 것을 감지하는 방법
- window 의 상대 좌표를 사용함
document.documentElement.getBoundingClientRect()
- 전체 문서의 window 기준 좌표를 가져옴
전체 HTML document 의 높이가 2000px 일 때,
500px 아래로 스크롤하면
창 높이
를 600px 로 가정하고 끝까지 스크롤 할 때
bottom 프로퍼티는 절대 0 이 되지 않는다.
- bottom 이 window 의 top 의 위치에 올 수 없기 때문
bottom 의 최소값이 되었을 때
- 값 →
창높이
- 더이상 위로 스크롤 할 수 없는 상태
창높이
- document.documentElement.clientHeight
- 가로스크롤과 테두리를 제외한 창의 높이
document bottom 이 100px 으로부터 멀어지지 않는 때를 알야야 한다.
- scroll 의 elastic 과 imprecise 특성 때문
- 높이가 600px 인 경우, 600-700px 사이 이다.
#
Up/down button- 스크롤이 되고 있지 않을 때는 버튼이 나타나지 않는다.
- 스크롤이 window height 만큼 아래로 스크롤 되었을 때 버튼이 나타난다.
- 버튼이 있지만, 페이지를 2 번 상태 이전으로 스크롤 하면 버튼이 사라진다.
- 버튼을 누르면 페이지가 top 으로 스크롤 되고 벝튼이 사라진다.
#
Load visible images이미지를 즉시 로드하지 않고, 자리 표시자로 대체한다.
페이지가 사용자가 볼 수 있는 위치로 스크롤 하면, 변경되어 src 에 dara-src 이미지가 로드됨
예시 의 조건
- 페이지가 로드 될 때 화면에있는 이미지는 스크롤하기 전에 즉시로드되어야합니다.
- 일부 이미지는 data-src.
- 일단 이미지가 로드 되면 스크롤 인 / 아웃 할 때 더 이상 다시 로드 되지 않아야 합니다.
- 가능하다면 현재 위치보다 한 페이지 아래 / 뒤에있는 이미지를 "미리로드"하는 고급 솔루션을 만드십시오.
- 세로 스크롤 만 처리하고 가로 스크롤은 처리하지 않습니다.
요소(이미지)가 사용자에게 보이는 위치인지 검사한다.