2012-05-07 5 views
1

기본적으로 "menu1"아래에 "submenu11"의 내용이 표시되도록 정의하는 방법은 무엇입니까?DIV 컨테이너를 사용하는 탐색 메뉴

<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 

<body> 
     <ul id="css3menu1" class="menu"> 
     <li class="topfirst"><a class="pressed" href="#menu1" style="height:40px;line-height:40px;"><span><img src="menu_files/css3menu1/db.png"/>MENU1</span></a> 
       <ul> 
        <li><a href="#submenu11">SUBMENU11</a></li> 
        <li><a href="#submenu12">SUBMENU12</a></li> 
        <li><a href="#submenu13">SUBMENU13</a></li> 
        <li><a href="#submenu14">SUBMENU14</a></li> 
       </ul></li> 
       <li class="menu"><a href="#menu2" style="height:40px;line-height:40px;"><img src="menu_files/css3menu1/schedule.png"/>MENU2</a></li> 
       <li class="menu"><a href="#menu3" style="height:40px;line-height:40px;"><img src="menu_files/css3menu1/analysis.png"/>MENU3</a></li> 
       <li class="toplast"><a href="#menu4" style="height:40px;line-height:40px;"><img src="menu_files/css3menu1/gps.png"/>MENU4</a></li> 
      </ul> 

    <div id='submenu11'> 
    <p> Content </p> 
    </div> 

    <div id='submenu12'> 
    <p> Content </p> 
    </div> 

    <div id='submenu13'> 
    <p> Content </p> 
    </div> 

    <div id='submenu14'> 
    <p> Content </p> 
    </div> 

    <script> 
     $('ul.menu').each(function() { 
      var $active, $content, $links = $(this).find('a'); 
      $active = $links.first().addClass('active'); 
      $content = $($active.attr('href')); 
      $links.not(':first').each(function() { 
       $($(this).attr('href')).hide(); 
      }); 

      $(this).on('click', 'a', function(e) { 
       $active.removeClass('active'); 
       $content.hide(); 
       $active = $(this); 
       $content = $($(this).attr('href')); 
       $active.addClass('active'); 
       $content.show(); 
       e.preventDefault(); 
      }); 
     }); 
    </script> 
</body> 

CSS 스타일 시트 :

html,body { 
    font: normal .8em/1.5em Arial, Helvetica, sans-serif; 
    background: #ffffff; 
    width: 100%; 
    margin: 0px auto; 
} 

p { 
    margin: 0 0 2em; 
} 

h1 { 
    margin: 0; 
    font:bold 12px Arial; 
} 

h2 { 
    margin:0; 
    color: #55aaff; 
    font:bold 12px Arial; 
} 

h3 { 
    margin:0; 
    font:normal 10px Arial; 
} 

h4 { 
    margin:0; 
    font:normal 12px Arial; 
} 

a { 
    color: #339; 
    text-decoration: none; 
} 

a:hover { 
    text-decoration: underline; 
} 

div#header { 
    padding:1em; 
    background:#00557f 100% 10px no-repeat; 
    border-bottom:6px double gray; 
} 

div#header p { 
    font:normal 10px Arial; 
    text-align:right; 
    color:#b7ddf2; 
    margin:0; 
} 

div.scrollbar { 
    height: 300px; 
    overflow: auto; 
    border: solid 1px #000; 
    padding: 5px; 
} 

div#content { 
    padding:1em 1em 5em; /* bottom padding for footer */ 
} 

div#content p { 
    text-align:justify; 
    padding:0 1em; 
} 

div#footer { 
    position:absolute; 
    width:100%; 
    bottom:0; /* stick to bottom */ 
    padding:1em; 
    background:#ddd 98% 10px no-repeat; 
    border-bottom:6px double gray; 
} 
div#footer p { 
    font-style:italic; 
    font-size:1.1em; 
    margin:0; 
} 

/* ----------- Menu ----------- */ 
ul#css3menu1,ul#css3menu1 ul{ 
    margin:0; 
    list-style:none; 
    padding:0; 
    background-color:#dedede; 
    border-width:1px; 
    border-style:solid; 
    border-color:#b7ddf2; 
    -moz-border-radius:5px; 
    -webkit-border-radius:5px; 
    border-radius:5px; 
} 
ul#css3menu1 ul{ 
    display:none; 
    position:absolute; 
    left:0; 
    top:100%; 
    -moz-box-shadow:3.5px 3.5px 5px #000000; 
    -webkit-box-shadow:3.5px 3.5px 5px #000000; 
    box-shadow:3.5px 3.5px 5px #000000; 
    background-color:#FFFFFF;border-radius:6px; 
    -moz-border-radius:6px; 
    -webkit-border-radius:6px; 
    border-color:#d4d4d4; 
    padding:0 10px 10px; 
} 
ul#css3menu1 li:hover>*{ 
    display:block; 
} 
ul#css3menu1 li{ 
    position:relative; 
    display:block; 
    white-space:nowrap; 
    font-size:0; 
    float:left; 
} 
ul#css3menu1 li:hover{ 
    z-index:1; 
} 
ul#css3menu1{ 
    font-size:0; 
    z-index:999; 
    position:relative; 
    display:inline-block; 
    zoom:1; 
    *display:inline; 
} 
ul#css3menu1>li{ 
    margin:0; 
} 
* html ul#css3menu1 li a{ 
    display:inline-block; 
} 
ul#css3menu1 a:active, ul#css3menu1 a:focus{ 
    outline-style:none; 
} 
ul#css3menu1 a{ 
    display:block; 
    vertical-align:middle; 
    text-align:left; 
    text-decoration:none; 
    font:bold 12px Arial; 
    color:#000000; 
    text-shadow:#FFF 0 0 1px; 
    cursor:pointer; 
    padding:10px; 
    background-color:#ebf4fb; 
    background-image:url("mainbk.png"); 
    background-repeat:repeat; 
    background-position:0 0; 
    border-width:0 0 0 1px; 
    border-style:solid; 
    border-color:#C0C0C0; 
} 
ul#css3menu1 ul li{ 
    float:none; 
    margin:10px 0 0; 
} 
ul#css3menu1 ul a{ 
    text-align:left; 
    padding:4px; 
    background-color:#FFFFFF; 
    background-image:none; 
    border-width:0; 
    border-radius:0px; 
    -moz-border-radius:0px; 
    -webkit-border-radius:0px; 
    font:11px Arial; 
    color:#000; 
    text-decoration:none; 
} 
ul#css3menu1 li:hover>a,ul#css3menu1 a.pressed{ 
    background-color:#b7ddf2; 
    border-color:#C0C0C0; 
    border-style:solid; 
    color:#000000; 
    text-decoration:none; 
    text-shadow:#FFF 0 0 1px; 
    background-position:0 100px; 
} 
ul#css3menu1 img{ 
    border:none; 
    vertical-align:middle; 
    margin-right:10px; 
} 
ul#css3menu1 img.over{ 
    display:none; 
} 
ul#css3menu1 li:hover > a img.def{ 
    display:none; 
} 
ul#css3menu1 li:hover > a img.over{ 
    display:inline; 
} 
ul#css3menu1 li a.pressed img.over{ 
    display:inline; 
} 
ul#css3menu1 li a.pressed img.def{ 
    display:none; 
} 
ul#css3menu1 span{ 
    display:block; 
    overflow:visible; 
    background-position:right center; 
    background-repeat:no-repeat; 
    padding-right:0px; 
} 
ul#css3menu1 li:hover>a,ul#css3menu1 li>a.pressed{ 
    background-color:#b7ddf2; 
    background-position:0 100px; 
    border-style:solid; 
    border-color:#C0C0C0; 
    color:#000000; 
    text-decoration:none; 
    text-shadow:#FFF 0 0 1px; 
} 
ul#css3menu1 ul li:hover>a,ul#css3menu1 ul li>a.pressed{ 
    background-color:#FFFFFF; 
    background-image:none; 
    color:#868686; 
    text-decoration:none; 
} 
ul#css3menu1 li.topfirst>a{ 
    border-radius:5px 0 0 5px; 
    -moz-border-radius:5px 0 0 5px; 
    -webkit-border-radius:5px; 
    -webkit-border-top-right-radius:0; 
    -webkit-border-bottom-right-radius:0; 
} 
ul#css3menu1 li.toplast>a{ 
    border-radius:0 5px 5px 0; 
    -moz-border-radius:0 5px 5px 0; 
    -webkit-border-radius:0; 
    -webkit-border-top-right-radius:5px; 
    -webkit-border-bottom-right-radius:5px; 
} 
/* --------- End of Menu --------- */ 

EDIT1 : 나는 스크립트와 스타일 시트를 포함. enter image description here

EDIT2 : 사진을보세요. 문제를 분명히해야합니다. 우리가 더 나은 당신을 도울 수있는 예 또는 그림을 보여 주면 http://www.cssmenus.co.uk/dropdown.html

:

+0

서버 측 언어는 무엇입니까? Asp.Net입니까? – freebird

+0

이 예제에서 JQuery를 사용하고 있습니다. http://jsfiddle.net/pratik136/JgReZ/ 죄송합니다. 저는 처음에는 질문을 완전히 이해하지 못했습니다. –

+0

괜찮습니다. 하위 메뉴 항목을 클릭하여 페이지를 사용하고 있다고 생각했습니다. 그 이유는 내가 당신에게 묻기 때문입니다. – freebird

답변

1

문제는이 라인에 있습니다

$active = $links.first().addClass('active'); 

이 메뉴의 첫 번째 링크를 소요하고 활성화됩니다. 클래스 메뉴와 UL의 첫 번째 <a> 태그는 첫 번째 메뉴 항목이 아니라 :

<a class="pressed" href="#menu1" style="height:40px;line-height:40px;"><span><img src="menu_files/css3menu1/db.png"/>MENU1</span></a> 

그래서 당신은 당신이 첫 번째 메뉴 항목을 대상으로 확인해야합니다.

<li><a href="#submenu11" id="submenu-default">SUBMENU11</a></li> 

을 그리고 당신은에 자바 스크립트의 라인을 다시 작성해야 : 당신은 예를 들어 여기에 ID를 할당 할 수있는 트릭을 할해야

$active = $('#submenu-default').addClass('active'); 

합니다. 물론 다른 방법으로 해당 링크를 찾을 수 있습니다.

<ul id="css3menu1"> 
    <li class="topfirst"><a class="pressed" href="#menu1" style="height:40px;line-height:40px;"><span><img src="menu_files/css3menu1/db.png"/>MENU1</span></a> 
      <ul class="menu"> 
       <li><a href="#submenu11">SUBMENU11</a></li> 
       <li><a href="#submenu12">SUBMENU12</a></li> 
       <li><a href="#submenu13">SUBMENU13</a></li> 
       <li><a href="#submenu14">SUBMENU14</a></li> 
      </ul></li> 
      <li class="menu"><a href="#menu2" style="height:40px;line-height:40px;"><img src="menu_files/css3menu1/schedule.png"/>MENU2</a></li> 
      <li class="menu"><a href="#menu3" style="height:40px;line-height:40px;"><img src="menu_files/css3menu1/analysis.png"/>MENU3</a></li> 
      <li class="toplast"><a href="#menu4" style="height:40px;line-height:40px;"><img src="menu_files/css3menu1/gps.png"/>MENU4</a></li> 
     </ul> 

당신이 메뉴의 첫 번째 링크로, 자바 스크립트를 변경할 필요가 없습니다이 방법은 지금 실제로 처음이다 :

편집 : 다음과 같이 어쩌면 더 나은 솔루션은 HTML을 재 작성하는 것입니다 항목을 선택합니다. 나는 당신을 위해 최선을 다하는 것이 무엇인지 찾아 내기 위해 그것을 남겨 두었습니다.

+0

두 번째 솔루션은 훌륭하게 작동합니다. 이것은 내가 찾고 있었던 바로 그 것이다. 이 경우 첫 번째 솔루션은 하위 메뉴의 내용이 병합되기 때문에이를 작동 시키려면 몇 가지 추가 노력이 필요합니다. –

+0

필자는 스크립트를 아주 간단하게 살펴 보았으므로 첫 번째 솔루션이 작동하려면 몇 가지 추가 변경이 필요할 수 있습니다. 하지만 저는 두 번째 팬도 더 좋아합니다.) 어쨌든, 그것이 당신을 도왔 기 때문에 기쁩니다. – Laky

1

난 당신이 뭔가를 원하는 것 같아요.

+0

그 링크가 무엇인지 확실하지 않습니까? – freebird

+0

@ JohanB : 더 자세한 코드 샘플을 첨부했습니다. 당신이 그림을보고 싶다면 Pls는 내게 알려줍니다. –