2005년 9월 13일 화요일

DIV-디자인이 STAGE.CENTER 일 땐 짜증나는거죠~

중앙정렬인 디자인에서 레이어가 디자인상으로 특정위치에 계속 떠야하는 문제가 있을 때 꼬오옥~ 있다.
이럴 경우에 브라우져의 높이와 폭을 계산하여 중심점을 구하고 그 중심점으로부터 몇픽셀 움직이느냐가 관건인데...

우선 브라우저의 폭은 document.body.clientWidth 이구, 레이어의 좌측위치는 전체 브라우저의 폭에서 레이어의 넓이를 빼고나서 2로 나누면 정중앙에 위치하겠지?
참고로... 레이어의 좌측 좌표는 document.all['Layer1'].style.left이고..

body안에 자유롭게 삽입하고자 하면, 브라우저 사이즈변경시 적용이 안된다.
onresize함수는 body안에 들어가기땜시... ㅡ.ㅡ;
브라우저 사이즈변경이 필요없다면 아래처럼 javascript안에 centerWindow();를 넣으면 된다.

도움이 되셨기를....
----소스------------------
<html>
<body onresize="centerWindow();" onload="centerWindow();">
<script language="JavaScript">
<!--
function centerWindow() {
var xMax = document.body.clientWidth, yMax = document.body.clientHeight;
var xOffset = (xMax-200)/2+20, yOffset = (yMax-150)/2+40;
//중심에서 오른쪽으로 20, 아래로 40픽셀에 항상 위치하는 레이어
var divMenu = document.all['Layer1'].style;
divMenu.top = yOffset;
divMenu.left = xOffset;
}
//centerWindow();
//--
>
</script>

<div id="Layer1" style="position:absolute; left:200px; top:80px; width:200px; height:150px; z-index:1">
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" bgcolor=#FFFFFF style="border:#808080 1px solid;" height=150>
<span style="font-family:굴림; font-size:9pt">
항상 중심에 뜨는 <br>
레이어 샘플입니다.</span><br>
<img src="http://www.google.co.kr/images/logo_sm.gif" width="150" height="55" alt="배너">
</td>
</tr>
</table>
</div>
</body>
</html>