웹마스터 팁

IFRAME을 마치 윈도우처럼 타이틀바로 드래그/드롭 할수 있는 팁입니다.

원리는 아주 간단합니다

일단 IFRAME이 있고

IFRAME 위에 타이틀바 레이어가 딱 붙어있죠. (마치 한몸뚱아리처럼)

물론 타이틀바레이어는 '부모'윈도가 갖고 있는놈이구요.


대략적인 흐름으로 설명 하자면 이렇습니다

[타이틀바에 마우스DOWN(버튼이눌려진상태)]
    ↓
[드래그 '가능'상태]
    ↓
[마우스MOVE]
    ↓
[마우스DOWN이벤트에서의 좌표와  마우스MOVE 후의 좌표의 차이만큼 IFRAME 의 좌표를 변경]




설명이 좀 부족해 보이지만

소스와 주석을 보시면 쉽게 알수 있을겁니다 ( 사실 대단한것도 아님 --;)


더불어 타이틀바 오른쪽에 '닫기'버튼의 기능까지 첨가하면 멋진 '윈도흉내내기'가 되겠죠.


예제: http://myhome.hanafos.com/~muldae76/iframe.html
응용: http://myhome.hanafos.com/~muldae76/index.html



<HTML>
<HEAD>
<TITLE>IFRAME 드래그하기</TITLE>

<SCRIPT LANGUAGE="JavaScript">
<!--
                
        var ifdocDrag = false;                        // 드래그 불/가 를 저장할 논리변수

        function docDrag(){                                // 마우스버튼이 눌려진 상태에서 드래그를 준비하는 함수

                ifdocDrag = true;                        // 드래그 '가능'
                originXtitle = titlebar.style.pixelLeft;        //원래의 타이틀바 X 좌표 (스타일에서의 'left')
                originYtitle = titlebar.style.pixelTop;                //원래의 타이틀바 T 좌표 (스타일에서의 'top')
                originXdoc = document.all['docFrame'].style.pixelLeft;        // 원래의 IFRAME X좌표 (스타일에서의 'left')
                originYdoc = document.all['docFrame'+ '].style.pixelTop;        // 원래의 IFRAME Y좌표 (스타일에서의 'top')
                
                tempX = self.event.clientX;                                // 이벤트(mousedown)이 발생한 지금의 마우스 X좌표
                tempY = self.event.clientY;                                // 이벤트(mousedown)이 발생한 지금의 마우스 Y좌표

                document.onmousemove = docMove;                        // mousemove 이벤트 발생시(마우스 움직일때) docMove 함수 호풀
                document.onmouseup = new Function("ifdocDrag = false");        //mouseup 이벤트 발생시(마우스버튼이 띄어질때) 드래그 '불가'로
        }

        function docMove(){                // 실제 IFRAME을 움직이는 함수

                if(ifdocDrag){                // 드래그 '가능'일때

                        titlebar.style.pixelLeft = originXtitle + self.event.clientX - tempX;        
                        // 타이틀바 X좌표는= [원래X] + [현재마우스의X] - [클릭한순간의(mousedown발생했을때의)마우스X]
                        titlebar.style.pixelTop = originYtitle + self.event.clientY - tempY;        
                        // 타이틀바 Y좌표는= [원래Y] + [현재마우스의Y] - [클릭한순간의(mousedown발생했을때의)마우스Y]

                        document.all['docFrame'].style.pixelLeft = originXdoc + self.event.clientX - tempX;
                        // IFRAME의 Y좌표는= [원래Y] + [현재마우스의Y] - [클릭한순간의(mousedown발생했을때의)마우스Y]
                        document.all['docFrame'].style.pixelTop = originYdoc + self.event.clientY - tempY;
                        // IFRAME의 Y좌표는= [원래Y] + [현재마우스의Y] - [클릭한순간의(mousedown발생했을때의)마우스Y]


                        return false;
                }
        }



//-->
</SCRIPT>


</HEAD>

<BODY ondragstart="return false" onselectstart="return false" unselectale="on" style="margin-right:0;" marginwidth=0 bgcolor="#808080">

<!-- 움직일IFRAME -->
<iframe  name="docFrame"  id="docFrame" style="position:absolute;left:123;top:71;width:794px;height:596px;z-index:1;" src="http://muldae.x-y.net/cgi-bin/tt/board/ttboard.cgi?db=freeboard" border=0 frameborder=0 scrolling=no>
</iframe>



<!-- IFRAME과 같이 움직일 타이틀바 레이어 (마치 IFRAME 과 한몸뚱아리처럼..)-->
<div id="titlebar" style="position:absolute;left:120;top:49;width:800px;height:621px;z-index:0;;">
<img src="http://myhome.hanafos.com/~muldae76/image/board_title.gif" style="position:absolute;left:0;top:0;width:800px;height:21px;z-index:0;" onmousedown="docDrag();">
<img src="http://myhome.hanafos.com/~muldae76/image/close_out.gif" style="position:absolute;left:779;top:5;z-index:2;">
<img src="http://myhome.hanafos.com/~muldae76/image/800_back.gif" style="position:absolute;left:0;top:21px;">
</div>

</bODY>
</HTML>


제목 글쓴이 날짜
홈페이지에 게시판을 iframe, include로 이용하시는분들 느까끼 2007.08.27
메뉴와 연결된 xe의 page에 iframe을 사용해서 제로보드4 게시판을 불러들였습니다 [2] 바람처럼.. 2007.09.14
iframe사용시 세로길이 자동 조정되게 하기 [7] file 팔공산 2007.10.04
BGM 등을 배경을 투명하게 iframe 으로 넣는 팁 [3] 푸른커튼 2008.02.05
제로보드에서 아이프레임(iframe) 높이 자동조절(파폭,IE, 모두 작동) [10] HaruKaze 2009.03.17
iframe을 이용한 악성코드 침투 - 치료 및 대응법 (검블러 or GENO) [8] file 미루819 2009.10.01
제로보드에서 iframe 높이 자동(유동적)조절(파폭,IE, 오페라,사파리,IETester) [11] file hhgyu 2010.09.17
iframe태그.. HTML문서안에 또하나의 HTML문서.. [9] 신종은 2002.05.09
iframe을 이용하여 target효과 주기. [8] ZipShin 2002.08.01
Fieldset을 이용한 iframe의 효과~! [6] 깻잎사랑=_=v 2002.09.09
[HTML 초보자]iframe대신 사용할수있는 오브젝트-1 [8] ZipShin 2002.12.06
[HTML 초보자]iframe대신 사용할수있는 오브젝트-2 [12] ZipShin 2002.12.06
[나모] iframe창에서 다른 iframe창으로 링크걸기, 전체창으로 링크하기 [1] 김병희 2003.08.06
IFRAME 삽입 [20] 박종익 2003.10.10
iframe 그때그때 달라요 ~ [높이자동변경] [15] kim's 2005.02.18
[JavaScript] 익스플로러,네츠케이프 모두에서 iframe 과 비슷하게 해보자! [3] 티르 2002.01.24
iFrame 문서크기에 맞게.. 초간단.. [10] 정명주 2002.08.02
Select의 값을 iframe으로 넣는것입니다. [3] ZipShin 2002.10.03
IFRAME을 드래그해서 크롬리스처럼 사용하기 [16] 멀대 2002.10.21
iframe 내용에 맞게 자동으로 크기 조절하기 [36] 행복한고니 2002.11.21