레이어팝업 화면 가운데 올 수 있나요?
본문
<script type="text/javascript">
var boxs= new Array();
var k=0;
function move_box(an,width,height,box) {
var ev = event.srcElement.name;
// 브라우져의 이벤트가 발생하는 이름이 inputBtn1 일때
if ( ev == "inputBtn1" ) { // 왼쪽 여백
var cleft = 0; // 위쪽 여백
var ctop = 0; var obj = an;
while ( obj.offset ) {
cleft += obj.offsetLeft;
ctop += obj.offsetTop;
obj = obj.offset; } //
} else if ( ev == ( "unyoungBtn4" ) ) { // 왼쪽 여백
var cleft = 0; // 위쪽 여백
var ctop = 0; var obj = an;
while ( obj.offset ) {
cleft += obj.offsetLeft;
ctop += obj.offsetTop;
obj = obj.offset; } //
} else if ( ( ev == "unyoungBtn2" ) ) { // 왼쪽 여백
var cleft = 0; // 위쪽 여백
var ctop = 0;
var obj = an;
while ( obj.offset ) {
cleft += obj.offsetLeft;
ctop += obj.offsetTop;
obj = obj.offset; } }
box.style.left = cleft + 'px';
ctop += an.offsetHeight + 8;
if ( document.body.currentStyle && document.body.currentStyle['marginTop'] ) {
ctop += parseInt( document.body.currentStyle['marginTop'] ); }
box.style.top = ctop + 'px';}
function show_hide_box(an,width,height,borderStyle,top,left) {
var ev = event.srcElement.name;
if ( ev == "item_M_Btn1" ) {
var itemL = document.forms['frmsub'].item_L_cd1.value;
var href = an.href + itemL; } else if ( ev == "item_S_Btn1" ) {
var itemM = document.forms['frmsub'].item_M_cd1.value;
var href = an.href + itemM; } else if ( ev == "item_M_Btn4" ) {
var itemL = document.forms['frmbipum'].item_L_cd4.value;
var href = an.href + itemL; } else if ( ev == "item_S_Btn4" ) {
var itemM = document.forms['frmbipum'].item_M_cd4.value;
var href = an.href + itemM; } else {
var href = an.href; }
// 호출한 페이지의 위치 id 를 href 로 정함
var boxdiv = document.getElementById( href );
for(var i=0;i<boxs.length;i++) {
if ( boxdiv == boxs[i] ) continue;
boxs[i].style.display = 'none';
}
if ( boxdiv != null )
{ if ( boxdiv.style.display == 'none' ) {
move_box( an, width, height, boxdiv );
boxdiv.style.display = 'block'; }
else boxdiv.style.display = 'none';
return false;
}
// div 태그로 팝업될 박스 생성과 각각의 값들 설정
boxdiv = document.createElement( 'div' );
boxdiv.setAttribute( 'id', href );
boxdiv.style.display = 'block';
boxdiv.style.position = 'fixed';
boxdiv.style.width = width + 'px';
boxdiv.style.height = height + 'px';
boxdiv.style.border = borderStyle;
boxdiv.style.backgroundColor = '#fff'; // div 태그 내에 iframe 로 설정
boxdiv.style.zIndex = '99999';
boxdiv.style.top = top + '%';
boxdiv.style.left = left + '%';
var contents = document.createElement( 'iframe' );
contents.scrolling = 'yes';
contents.frameBorder = '0';
contents.style.width = width + 'px';
contents.style.height = height + 'px';
contents.src = href;
contents.style.zIndex = '99999';
boxdiv.appendChild( contents );
document.body.appendChild( boxdiv );
move_box( an, width, height, boxdiv );
boxs[k++] = boxdiv;
return false;
}
파란 글씨로 위치를 변경해보려고 했지만
화면 가운데 오도록되지는 않네요
혹시 가능할까요?
답변 1
boxdiv.style.top = top + '%';
boxdiv.style.left = left + '%';
boxdiv.style.margin = margin + '0 auto';
센터 정렬후에 브라우저 높이 구하는값에 /2 해버리면 ...되지 않을까요..
css로 중앙정렬 처리해도되고 스크립트말고