테스트 사이트 - 개발 중인 베타 버전입니다

롤오버시 서브메뉴가 나타나는 기본 스크립트

· 12년 전 · 12617 · 4

안녕하세용.~~
필요하신분이 계실지 잘 모르겠지만,
제가 일반 소규모 홈페이지를 만들때 그냥 끼워넣어서 쓰는 소스입니다.

<style>
#menu {display:inline-block;width:700px;/* 메뉴의 너비 */}
#menu li {display:inline-block;width:25%;/* 1차메뉴 개수에 따라 %조절 */height:33px;/* 1차 메뉴바 높이 */float:left;text-align:center;}
#menu li ul {display:none;position:absolute;width:400px;margin-top:26px;/* 2차메뉴의 위치 - 1차메뉴 맨위에서 부터의 거리 */}
#menu li ul li {display:inline-block;width:auto;height:28px;/* 2차메뉴의 높이 */padding:0;text-align:center;}
#menu img {border:0px none;}
#menu .side {padding:0;}
#menu .submenu {padding:5px 8px 0 8px;background:url(서브메뉴 배경) x-repeat;}

/* -------------------------------------------
각 서브메뉴의 위치
기준 : 1차 메뉴의 맨 앞에서 부터의 거리로 계산
------------------------------------------- */
#menu .submenu1 {margin-left:-100px;}
#menu .submenu2 {margin-left:-100px;}
#menu .submenu3 {margin-left:-100px;}
#menu .submenu4 {margin-left:-100px}
</style>
<script language="javascript">
/* 만약 오픈 되어 있어야 하는 서브메뉴가 있을때 사용 */
//var old_menuid = 메뉴번호;
var old_viewid = 0;
function menu_view(viewid){
 if(viewid!=old_viewid){
  document.getElementById("submenu"+viewid).style.display="block";
  if(old_viewid!="0")document.getElementById("submenu"+old_viewid).style.display="none";
  old_viewid = viewid;
 }
}

function menu_hide(hideid){
 document.getElementById("submenu"+hideid).style.display="none";
 old_viewid = 0;
}
</script>

<div id="menu">
    <ul>
        <li onmouseover="javascript:menu_view(1);" onmouseout="javascript:menu_hide(1);">
            <a href="#"><img src="./common/menu_01.png" alt="1번메뉴"></a>
            <ul id="submenu1" class="submenu1" onmouseover="javascript:menu_view(2);" onmouseout="javascript:menu_hide(1);">
                <li class="submenu"><a href="#">1-1메뉴</a></li>
                <li class="submenu"><a href="#">1-2메뉴</a></li>
                <li class="submenu"><a href="#">1-3메뉴</a></li>
                <li class="submenu"><a href="#">1-4메뉴</a></li>
            </ul>
        </li>
       
        <li onmouseover="javascript:menu_view(2);" onmouseout="javascript:menu_hide(2);">
            <a href="#"><img src="./common/menu_02.png" alt="2번메뉴"></a>
            <ul id="submenu2" class="submenu2" onmouseout="javascript:menu_hide(2);">
                <li class="submenu"><a href="#">2-1메뉴</a></li>
                <li class="submenu"><a href="#">2-2메뉴</a></li>
                <li class="submenu"><a href="#">2-3메뉴</a></li>
                <li class="submenu"><a href="#">2-4메뉴</a></li>
            </ul>
        </li>
       
        <li onmouseover="javascript:menu_view(3);" onmouseout="javascript:menu_hide(3);">
            <a href="#"><img src="./common/menu_03.png" alt="3번메뉴"></a>
            <ul id="submenu3" class="submenu3" onmouseout="javascript:menu_hide(3);">
                <li class="submenu"><a href="#">3-1메뉴</a></li>
                <li class="submenu"><a href="#">3-2메뉴</a></li>
                <li class="submenu"><a href="#">3-3메뉴</a></li>
                <li class="submenu"><a href="#">3-4메뉴</a></li>
            </ul>
        </li>
       
        <li onmouseover="javascript:menu_view(4);" onmouseout="javascript:menu_hide(4);">
            <a href="#"><img src="./common/menu__04.png" alt="4번메뉴"></a>
            <ul id="submenu4" class="submenu4" onmouseout="javascript:menu_hide(4);">
                <li class="submenu"><a href="#">4-1메뉴</a></li>
                <li class="submenu"><a href="#">4-2메뉴</a></li>
                <li class="submenu"><a href="#">4-3메뉴</a></li>
                <li class="submenu"><a href="#">4-4메뉴</a></li>
            </ul>
        </li>
    </ul>
</div>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

필요할때 무지 찾아 다니게 되는 소스 !!
감사드립니다.
11년 전
감사합니다. 유용하게 쓰겠습니다. 영카트에 넣었더니 하위메뉴의 글씨가 크게 나오는데 기본css를 수정해야 하는 건가요.
이미지를 넣으면 괜찮겠지요.
아마도 사이트 css의 기본 폰트사이즈를 이용하는거라
#menu li {display:inline-block;width:25%;height:33px;float:left;font-size:00px;text-align:center;}
여기에 폰트사이즈 추가하시면됩니다.
이건 완전 허접한거라 다음에 다시 올려드리도록 하겠습니다. 요즘은 jquery를 보통 많이 사용합니다.
5년 전
감사합니다..

게시글 목록

번호 제목
17927
17926
17922
17921
17915
17910
17907
17892
17888
17879
17878
17874
17873
17872
17871
17870
17869
17868
17866
17865
17864
17863
17862
17859
17856
17845
17835
17834
17826
17823