웹마스터 팁

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 높이 자동(유동적)조절(파폭,IE, 오페라,사파리,IETester) [11] file hhgyu 2010.09.17
1.7.3 최신버전 특정사이트 iframe(아이프레임) 일반회원 html적용가능하게 하기 [2] imgXE™ 2013.05.06
IE에서 스크립트 생성 iframe 요소에 name 속성 지정이 무시될 때 신평 2014.12.08
iframe을 이용하여 target효과 주기. [8] ZipShin 2002.08.01
SSL 적용시 작은 iframe 없애기 [1] file explode 2013.11.28
[10원팁] 크롬에서 글 작성시 IFRAME 박스가 생기는 경우 socialskyo 2014.01.03
iframe 등의 태그 화이트리스트 도메인 확인/추가하기 [1] Gunmania 2013.03.27
iframe 아이프레임 투명처리 꿈틀잉 2012.10.04
iframe을 이용한 악성코드 침투 - 치료 및 대응법 (검블러 or GENO) [8] file 미루819 2009.10.01
iframe 깨는 스크립트 입니다. [4] HB 2012.09.01
다른 도메인간 iframe 크기 자동조절(cross domain iframe auto resize) [2] 서기 2008.04.24
랜디님의 iframe 크기조절 소스응용-iframe 최저길이 지정하기 [1] 김수형 2004.09.10
[iframe:아이프레임] 내용에 맞게 사이즈 조절하기 한번입력으로 끝.[다른방법:중복아닌듯] [45] beMax 2004.04.23
두군데 IFRAME 위치에 내용 동시출력하기-프레임에도 가능 [4] 깜보 2003.02.22
iframe 내용에 맞게 자동으로 크기 조절하기 [36] 행복한고니 2002.11.21
IFRAME을 드래그해서 크롬리스처럼 사용하기 [16] 멀대 2002.10.21
Select의 값을 iframe으로 넣는것입니다. [3] ZipShin 2002.10.03
iFrame 문서크기에 맞게.. 초간단.. [10] 정명주 2002.08.02
[JavaScript] 익스플로러,네츠케이프 모두에서 iframe 과 비슷하게 해보자! [3] 티르 2002.01.24
iframe 그때그때 달라요 ~ [높이자동변경] [15] kim's 2005.02.18