먼저 JS에서 창과 웹 페이지의 여러 크기 속성의 의미를 자세히 설명하겠습니다
document.body.clientWidth(웹 페이지의 표시 영역 너비): 창과 웹 페이지의 크기 속성이 표시되는 영역의 너비를 나타냅니다. 브라우저는 브라우저의 테두리 너비와 세로 스크롤 막대의 너비를 제외하고 웹 페이지를 표시합니다. 브라우저 창 크기에 따라 크기가 변경됩니다.
document.body.clientHeight(웹 페이지 표시 영역 높이): 브라우저의 테두리 너비와 가로 스크롤 막대의 높이를 제외하고 브라우저가 웹 페이지를 표시하는 영역에서 볼 수 있는 높이를 의미합니다. 브라우저 창 크기에 따라 크기가 변경됩니다.
document.body.scrollTop(스크롤되는 웹페이지의 높이): 세로 스크롤바를 당겼을 때 웹페이지에서 주소 표시줄과 메뉴바로 가려지는 부분의 높이를 나타냅니다.
document.body.scrollLeft(스크롤되는 웹페이지의 왼쪽): 가로 스크롤 막대를 당겼을 때 왼쪽 선이 덮는 웹페이지의 왼쪽 너비를 나타냅니다.
이제 프로그램 구현 방법을 분석해 보겠습니다.
우리가 달성하려는 첫 번째 단계는 스크롤 막대가 있는지 여부에 관계없이 레이어가 팝업될 때 절대적으로 중앙에 위치하도록 만드는 것입니다.
1. 표시 영역의 왼쪽과 상단에서 레이어의 위치를 계산합니다.
참고: divId는 가운데에 배치할 레이어를 나타내며 divId.clientWidth는 너비입니다! @
var divId = document.getElementById("xxx");
var v_left=(document.body.clientWidth-divId.clientWidth)/2
var v_top=(document.body.clientHeight-divId .clientHeight)/2;
2. DIV의 왼쪽 및 위쪽 속성에 다시 할당
divId.style.top=v_top; >설명 : divId는 DIV 태그의 id 값입니다.
이렇게 하면 이 레이어가 중앙에 표시됩니다.
우리가 달성하려는 두 번째 단계는 스크롤 막대를 드래그할 때 나타나는 레이어를 중앙에 배치하는 것입니다.
사실 아주 간단합니다. 앞서 계산한 왼쪽 여백과 위쪽 여백에 드래그한 너비와 높이만 추가하면 됩니다.
v_left =document.body.scrollLeft;
v_top =document.body.scrollTop;
2. 얻은 값을 DIV
divId.style.left의 왼쪽 및 위쪽 속성에 다시 할당합니다. =v_left ;
divId.style.top=v_top
중앙에 표시됩니다.
전체 코드는 다음과 같습니다.