자바스크립으로 플래쉬 메뉴처럼

· 2007-07-06 (금) 18:45:09 · 5205 · 10
톡박에 한번 올렸던 소스인데 조금 다듬어서 올립니다.
적절히 수정&가공하시면 멋진 메뉴가 나올거에요~

<html>
 <head>
  <title>Menu</title>
 </head>
<script>
var delay = 3;            // 메뉴 스피드(낮을수록 빠름)
var m_length = 20;    // 메뉴 간격
var sel_l_length = 30;    // 선택한 메뉴와 이전 메뉴 간격
var sel_r_length = 60;    // 선택한 메뉴와 다음 메뉴 간격


var m_sel = 0;            // 메뉴 선택 상태
var m_max = 0;        // 메인메뉴 갯수
var sm_alpha = 0;    // 서브메뉴 투명도
var id = new Array();    // 메인메뉴 ID
var sid = new Array();    // 서브메뉴 ID
var m_top = 0;                // 메인메뉴 y 위치
function on_load(){
    while(document.getElementById("menu"+(m_max+1)) != null){
        m_max++;
        id[m_max] = document.getElementById("menu"+m_max);
        sid[m_max] = document.getElementById("smenu"+m_max);
    };
    m_top = id[1].offsetTop;
    m_act();
}
function m_over(m){
    m_sel = m;
    for(i=1;i<=m_max;i++){
        if(sid[i] != null){
            if(m_sel == i){
                id[i].style.fontWeight = 'bold';
                sid[i].style.display = "";
                sm_alpha = 0;
                if ((navigator.appName.indexOf('Microsoft')+1)) {
                    sid[i].filters.alpha.opacity = sm_alpha;
                }else{
                    sid[i].style.opacity = (sm_alpha/100);
                }
                sid[i].style.top = id[i].offsetTop + id[i].offsetHeight + 40;
            }else{
                id[i].style.fontWeight = '';
                sid[i].style.display = "none";
            }
        }
    }
}
function m_act(){
    var goy = 0;
    for(i=1;i<=m_max;i++){

        // 메인메뉴 좌우 이동
        if(i>1)
            temp = id[i-1].offsetWidth + id[i-1].offsetLeft;
        if(i==1){
            gox=id[i].offsetLeft;
        }else if(m_sel == i){
            gox =  temp + sel_l_length;
        }else if(m_sel+1 == i){
            gox =temp + sel_r_length;
        }else{
            gox = temp + m_length;
        }
        id[i].style.left = Math.ceil(id[i].offsetLeft - (id[i].offsetLeft - (gox))/delay)+"px";

        // 메인메뉴 상하 이동
        if(m_sel == i){
            id[i].style.top = Math.ceil(id[i].offsetTop - (id[i].offsetTop - (m_top + 7))/delay)+"px";
        }else if(m_sel!=0){
            id[i].style.top = Math.ceil(id[i].offsetTop - (id[i].offsetTop - (m_top - 5))/delay)+"px";
        }

        // 서브메뉴
        if(m_sel == i && sid[i] != null){
            // 서브메뉴 투명도
            if(sm_alpha < 100){
                sm_alpha += 5;
                if ((navigator.appName.indexOf('Microsoft')+1)) {
                    sid[i].filters.alpha.opacity = sm_alpha;
                }else{
                    sid[i].style.opacity = (sm_alpha/100);
                }
            }
            // 서브메뉴 아래서부터 위로 나타남
            goy = id[i].offsetTop + id[i].offsetHeight;
            sid[i].style.top = (sid[i].offsetTop - (sid[i].offsetTop - goy)/delay)+"px";
        }
    }
    setTimeout('m_act()',20);
}

</script>
<style>
.sm_a{color: #666666; text-decoration:none; padding:0px 3px 0px 2px}
.sm_a:hover {color: #FFFFFF; text-decoration:none; background:#666666; padding:0px 3px 0px 2px}
div{font-family:verdana; font-size:10px; letter-spacing:-1px}
.smenu{top:50px; position:absolute; filter:alpha(opacity=0); color:#DDDDDD}
.mmenu{top:30px; position:absolute; cursor:pointer; padding-right:2px; color:#666666}
</style>
<body onload='on_load()'>
    <div class=mmenu style='left:200px;' id=menu1 onClick='m_over(1)'>
    ABOUT US<br>
    </div>
    <div id='smenu1' class=smenu style='left:200px; display:none'><a href='' class=sm_a>menu1</a> | <a href='' class=sm_a>menu2</a> | <a href='' class=sm_a>menu3</a></div>
    <div class=mmenu style='left:280px;' id=menu2 onClick='m_over(2)'>
    PRODUCT<br>
    </div>
    <div id='smenu2' class=smenu style='left:250px; display:none'><a href='' class=sm_a>menu4</a> | <a href='' class=sm_a>menu5</a> | <a href='' class=sm_a>menu6</a></div>
    <div class=mmenu style='left:360px;' id=menu3 onClick='m_over(3)'>
    STORY<br>
    </div>
    <div id='smenu3' class=smenu style='left:310px; display:none'><a href='' class=sm_a>menu7</a> | <a href='' class=sm_a>menu8</a> | <a href='' class=sm_a>menu9</a></div>
</body>
</html>
[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]
|

댓글 10개

2007-07-13 (금) 14:31:17
우왓 ~ 고맙습니다. 지금 혼자 끙끙대던 건데^^
2007-08-14 (화) 00:11:02
우아~이거 최곤데요
와우 멋진데요 감사 합니다
정말 좋네요 감사합니다.
블루비 자료와 같은데..요?
플레시메뉴처럼
감사합니다^^

멋지네요 - ㅎㅎㅎ
좋네요!! 추천한방^^
2011-07-19 (화) 21:08:41
와,이거 정말 필요했었는데..감사합니다 ^^
정말이지 자바스크립트의 무한한가능성을 다시 한번 되새겨봅니다.
정말 대단하시네요~ 감탄했습니다.
정말 수고많으셨습니다. 새해 복 많이받으세요^^
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
08-01-27 조회 3,799
08-01-26 조회 8,555
08-01-21 조회 3,310
08-01-08 조회 3,755
07-12-21 조회 4,701
07-12-14 조회 4,851
07-12-13 조회 6,296
07-12-10 조회 4,075
07-12-03 조회 3,243
07-12-03 조회 4,287
07-11-27 조회 5,781
07-11-26 조회 2,984
07-11-22 조회 5,106
07-11-21 조회 3,318
07-11-21 조회 1.1만
07-11-12 조회 4,065
07-11-07 조회 4,827
07-10-29 조회 3,579
07-10-25 조회 4,994
07-10-24 조회 3,785
07-10-23 조회 5,976
07-10-09 조회 4,140
07-10-09 조회 4,603
07-10-09 조회 3,198
07-10-09 조회 3,552
07-09-27 조회 3,858
07-09-27 조회 3,079
07-09-15 조회 4,004
07-09-13 조회 2,783
07-09-13 조회 3,240
07-08-07 조회 3,269
07-08-04 조회 3,414
07-07-30 조회 5,415
07-07-29 조회 3,777
07-07-29 조회 4,446
07-07-21 조회 3,094
07-07-20 조회 3,142
07-07-20 조회 4,278
07-07-07 조회 3,381
07-07-06 조회 5,206
07-07-06 조회 5,601
07-07-05 조회 6,741
07-07-04 조회 3,372
07-06-11 조회 3,889
07-06-04 조회 7,234
07-05-28 조회 4,862
07-05-14 조회 6,336
07-05-10 조회 5,280
07-05-09 조회 3,381
07-05-04 조회 3,681
07-04-27 조회 3,324
07-04-25 조회 4,642
07-04-19 조회 3,608
07-04-16 조회 3,216
07-04-13 조회 3,833
07-04-12 조회 4,553
07-04-12 조회 4,767
07-04-11 조회 3,395
07-04-08 조회 5,127
07-04-07 조회 3,228
07-03-29 조회 3,533
07-03-27 조회 3,744
07-03-21 조회 5,142
07-03-15 조회 3,276
07-03-11 조회 3,295
07-03-10 조회 4,933
07-03-09 조회 3,938
07-03-08 조회 4,818
07-03-05 조회 2,938
07-03-02 조회 3,028
07-03-02 조회 3,865
07-02-26 조회 2,916
07-02-26 조회 3,007
07-02-23 조회 4,258
07-02-23 조회 3,324
07-02-23 조회 3,327
07-02-23 조회 3,507
07-02-22 조회 3,143
07-02-21 조회 4,796
07-02-20 조회 4,596
07-02-14 조회 3,737
07-02-12 조회 5,313
07-02-11 조회 4,764
07-02-10 조회 4,074
07-02-09 조회 3,845
07-02-08 조회 4,517
07-02-03 조회 4,110
07-02-02 조회 3,484
07-01-09 조회 3,570
07-01-08 조회 3,935
06-12-26 조회 4,637
06-12-21 조회 3,743
06-12-15 조회 4,155
06-12-15 조회 7,434
06-12-15 조회 3,161
06-12-15 조회 3,185
06-12-15 조회 3,458
06-12-15 조회 3,115
06-12-15 조회 4,533
06-12-15 조회 3,131