반응 좋은 메뉴 스크립트
첨부파일 https://imweb.eond.com/coding/164605
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
    <meta http-equiv=cache-control content=no-cache>
    <meta http-equiv=pragma    content=no-cache>

    <!-- title -->
    <title>반응 좋은 메뉴 스크립트</title>


    <script type="text/javascript" language="javascript">
    //<![CDATA[
        var subMPrefix = 'sub';
        var openLayer = null;

        function mouseOut(e, mainObj, subObjNo){
            subObj = document.getElementById(subMPrefix + subObjNo);
            if (!e) var e = window.event;
            var coord = getObjCoordinates(mainObj);
            var mouse = getMouseXY(e);
            if(mouse.x < coord.x || mouse.x > coord.x + coord.w || mouse.y < coord.y|| mouse.y > coord.y + coord.h) {
                hideLayer(subObj);
            }
        }

        function getObjCoordinates(obj) {
            var result = new Object();
            result.x = getOffsetLeft(obj);
            result.y = getOffsetTop(obj);
            result.w = obj.offsetWidth;
            result.h = obj.offsetHeight;
            return result;
        }

        function getMouseXY(e) {
            if (!e) var e = window.event;
            var result = new Object();
            result.x = document.all ? event.clientX + (document.body.scrollLeft == 0 ? document.documentElement.scrollLeft : document.body.scrollLeft) : e.pageX;
            result.y = document.all ? event.clientY + (document.body.scrollTop == 0? document.documentElement.scrollTop : document.body.scrollTop) : e.pageY;
            return result;
        }

        function checkMouse(e) {
            if (openLayer != null) {
                if (!e) var e = window.event;
                var tg = (window.event) ? e.srcElement : e.target;
                var obj = openLayer.parentNode;
                while (tg && tg != obj && tg.nodeName != 'BODY') {
                    tg= tg.parentNode;
                }
                if (tg == obj) {
                    return;
                } else {
                    hideLayer(openLayer);
                    openLayer = null;
                }
            }
        }

        function getOffsetLeft (el) {
            var ol = el.offsetLeft;
            while ((el = el.offsetParent) != null) { ol += el.offsetLeft; }
            return ol;
        }

        function getOffsetTop (el) {
            var ot = el.offsetTop;
            while((el = el.offsetParent) != null) { ot += el.offsetTop; }
            return ot;
        }

        function showLayer(objNo) {
            obj = document.getElementById(subMPrefix + objNo);
            obj.style.display = 'block';
            openLayer = obj;
        }

        function hideLayer(obj) {
            obj.style.display = 'none';
        }

        //
        function addEvent( obj, type, fn ) {
            if (obj.addEventListener) {
                obj.addEventListener( type, fn, false );
                EventCache.add(obj, type, fn);
            }
            else if (obj.attachEvent) {
                obj["e"+type+fn] = fn;
                obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
                obj.attachEvent( "on"+type, obj[type+fn] );
                EventCache.add(obj, type, fn);
            }
            else {
                obj["on"+type] = obj["e"+type+fn];
            }
        }

        var EventCache = function(){
            var listEvents = [];
            return {
                listEvents : listEvents,
                add : function(node, sEventName, fHandler){
                    listEvents.push(arguments);
                },
                flush : function(){
                    var i, item;
                    for(i = listEvents.length - 1; i >= 0; i = i - 1){
                        item = listEvents[i];
                        if(item[0].removeEventListener){
                            item[0].removeEventListener(item[1], item[2], item[3]);
                        };
                        if(item[1].substring(0, 2) != "on"){
                            item[1] = "on" + item[1];
                        };
                        if(item[0].detachEvent){
                            item[0].detachEvent(item[1], item[2]);
                        };
                        item[0][item[1]] = null;
                    };
                }
            };
        }();
        addEvent(window,'unload',EventCache.flush);
        //

        addEvent(document,'mousemove',checkMouse);
    //]]>
    </script>
    
    <!-- document-specific inline style -->
    <style type="text/css">
    /*<![CDATA[*/
        body { font-size: 9pt; margin:0; padding:50px 0 0;}
        #mWrap { position:absolute; }
        .mainM { float: left; background: #eee;  border:1px solid #333; width: 150px; padding: 6px 4px 0; margin: 0 2px; }
        .subM { margin: 8px 0; display:none; }
        .subM div { background: #ddd; margin: 6px 0 6px 20px; padding: 6px; border:1px solid #333;}
        .subM div div div{ background: #999; margin: 6px 0 6px 20px; padding: 6px; border:1px solid #333; }

        .mainM1 { background: #eee;  border:1px solid #333; width: 150px; padding: 6px 4px 0; margin: 0 2px; border-bottom: 0px;}
        .lastM { border-bottom: 1px solid #333;}
        .subM1 { margin: 8px 0; display:none; }
        .subM1 div { background: #ddd; margin: 6px 0 6px 20px; padding: 6px; border:1px solid #333;}
        .subM1 div div div{ background: #999; margin: 6px 0 6px 20px; padding: 6px; border:1px solid #333; }
        div.clear { clear: both; height:0px; font-size:0px; }
    /*]]>*/
    </style>

</head>

 <body>
 <table align="center" width="90%" height="90%" cellspacing="0" border="1" cellpadding="0">
 <tr>
    <td height="30" valign="top">
        <div id="mWrap">
            <div class="mainM" onmouseover="showLayer(1)" onmouseout="mouseOut(event, this, 1)">메인메뉴1
                <div class="subM" id="sub1">
                    <div><a href="#">서브메뉴1</a></div>
                    <div><a href="#">서브메뉴1</a></div>
                    <div><a href="#">서브메뉴1</a></div>
                </div>
            </div>
            <div class="mainM" onmouseover="showLayer(2)" onmouseout="mouseOut(event, this, 2)">메인메뉴2
                <div class="subM" id="sub2">
                    <div><a href="#">서브메뉴2</a></div>
                    <div><a href="#">서브메뉴2</a></div>
                    <div><a href="#">서브메뉴2</a></div>
                </div>
            </div>
            <div class="mainM" onmouseover="showLayer(3)" onmouseout="mouseOut(event, this, 3)">메인메뉴3
                <div class="subM" id="sub3">
                    <div><a href="#">서브메뉴3</a></div>
                    <div><a href="#">서브메뉴3</a></div>
                    <div><a href="#">서브메뉴3</a></div>
                </div>
            </div>
            <div class="mainM" onmouseover="showLayer(4)" onmouseout="mouseOut(event, this, 4)">메인메뉴4
                <div class="subM" id="sub4">
                    <div><a href="#">서브메뉴4</a></div>
                    <div><a href="#">서브메뉴4</a></div>
                    <div><a href="#">서브메뉴4</a></div>
                </div>
            </div>
            <div class="clear"></div>
        </div>
    </td>
 </tr>
<tr>
    <td height="100%">
        <div id="mWrap">
            <div class="mainM1" onmouseover="showLayer(11)" onmouseout="mouseOut(event, this, 11)">메인메뉴1
                <div class="subM1" id="sub11">
                    <div><a href="#">서브메뉴11</a></div>
                    <div><a href="#">서브메뉴11</a></div>
                    <div><a href="#">서브메뉴11</a></div>
                </div>
            </div>
            <div class="mainM1" onmouseover="showLayer(21)" onmouseout="mouseOut(event, this, 21)">메인메뉴2
                <div class="subM1" id="sub21">
                    <div><a href="#">서브메뉴21</a></div>
                    <div><a href="#">서브메뉴21</a></div>
                    <div><a href="#">서브메뉴21</a></div>
                </div>
            </div>
            <div class="mainM1" onmouseover="showLayer(31)" onmouseout="mouseOut(event, this, 31)">메인메뉴3
                <div class="subM1" id="sub31">
                    <div><a href="#">서브메뉴31</a></div>
                    <div><a href="#">서브메뉴31</a></div>
                    <div><a href="#">서브메뉴31</a></div>
                </div>
            </div>
            <div class="mainM1 lastM" onmouseover="showLayer(41)" onmouseout="mouseOut(event, this, 41)">메인메뉴4
                <div class="subM1" id="sub41">
                    <div><a href="#">서브메뉴41</a></div>
                    <div><a href="#">서브메뉴41</a></div>
                    <div><a href="#">서브메뉴41</a></div>
                </div>
            </div>
            <div class="clear"></div>
        </div>
    </td>
 </tr>
 </table>
 </body>
</html>
코멘트 0
접기/펴기 | 댓글 새로고침
 
 
Total 235 articles in 3 / 12 pages
번호 제목 제목 날짜날짜
공지 코딩 배울 수 있는 사이트 모음(HTML/CSS/JS/IMG/PHP) 2018/01/03
공지 jQuery를 배울수 있는 동네들입니다. 2013/08/09
공지 관련 링크 [1] 2010/05/23
195 [HTML5] HEAD에 CSS, JS(자바스크립트), META 넣기 2004/05/24
194 [PHP] <?echo($list_height)?> 의 쓰기 쉬운 변형 (by Hyunee) 2004/05/26
193 [HTML5] 프레임 나누기 (좌/우, 상/하) 2004/05/28
192 [Script] 웹페이지에서 특정 부분 감췄다보여주기 (by 위쯔) 2004/05/30
191 [Script] 게시판 등 에서 웹페이지에서 특정 부분 감췄다보여주기 - 레이어 토글 [1] 2004/06/04
190 [Script] 마우스를 올리면 레이어 뜨고 내리면 레이어 사라지는 스크립트 [1] 2004/06/08
189 [Script] 클릭하면 경고창 뜨는 스크립트 [1] 2004/12/14
188 [Script] ~한지 **일 되었습니다 (by kihwa) 2004/12/14
187 [Script] 마우스 올렸을 때 바뀌는 커서 (by kiwha) 2004/12/14
186 [Script] 클릭하면 닫히는 창 2005/04/28
185 [HTML5] 자바스크립트와 CSS를 넣는 방법 2005/04/28
184 [HTML5] 컬러코드 모음 2006/10/15
183 [DIV] div에서 table의 table-layout:fixed;dhk 같은 효과를 사용하기 [1] 2007/03/27
182 [DIV] div tag를 iframe 처럼 사용하기 2007/03/27
181 [Script] iframe 자동 리사이즈 [6] 2007/04/16
180 [HTML5] object - iframe처럼 페이지 삽입 소스 2007/04/16
179 [HTML5] 홈페이지 특정 부분을 아이프레임으로 보기 (by elca) 2007/04/16
178 [Script] 한 번의 클릭으로 두 개의 아이프레임 제어하기 2007/04/16
177 [Script] Iframe 크기 내용에 따라 자동조절하기 (by konahn) [1] 2007/04/17
176 [HTML5] 이미지 롤오버 [2] 2007/04/17

해시태그 디렉터리

오늘의 핫게시물