2016-08-15 2 views
0

브라우저 크기가 응답 가능으로 줄어들면 탐색을 즉시 숨기려고합니다. nav 쿼리를 사용하여 nav 레이아웃을 제어하고 있습니다. 필자가 작성한 코드는 작동하지만 브라우저 너비를 줄이면 내비게이션을 한눈에 볼 수있게되고 메뉴 단추를 클릭하기 만하면 바로 숨기는 대신 왼쪽으로 슬라이드합니다.브라우저의 너비가 줄어들면 즉시 내비게이션을 숨기기

codepen 참조하십시오 http://codepen.io/rezasan/pen/wWNxjR

HTML

<header> 
    <div id="menu-toggle">MENU</div> 
    <div class="header-bottom"> 
    <nav class="clearfix" id="topMenu"> 
     <div class="nav-group"> 
     <ul class="main-nav"> 
      <li><a href="about.html">About</a></li> 
      <li><a href="expertise.html">Expertise</a></li> 
      <li><a href="projects.html">Projects</a></li> 
      <li><a href="process.html">Process</a></li> 
      <li><a href="contact.html">Contact</a></li> 
     </ul> 
     </div> 
    </nav> 
    </header> 

CSS

@media only screen and (max-width: 65em){ 

#menu-toggle{ 
     width: 35px; 
     height: 50px; 
     position: absolute; 
     top:0; 
     cursor: pointer; 
     left:0; 
     color:red; 
    } 

.header-bottom{ 
     transform:translateX(-100%); 
     -webkit-transform:translateX(-100%); 
     -moz-transform:translateX(-100%); 
     -o-transform:translateX(-100%); 
     -ms-transform:translateX(-100%); 
     top:0; 
     height: 100%; 
     left: 0; 
     width: 100%; 
     background-color: #000; 
     z-index: 1; 
     transition:transform 0.5s cubic-bezier(.91,.12,.46,.8); 
     -webkit-transition:-webkit-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
     -moz-transition:-moz-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
     -ms-transition:-ms-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
     -o-transition:-o-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
    } 

    .slide{ 
     transform:translateX(-0%); 
     -webkit-transform:translateX(-0%); 
     -moz-transform:translateX(-0%); 
     -o-transform:translateX(-0%); 
    } 

} 

JS

$('#menu-toggle').click(function(){ 
     $('.header-bottom').toggleClass('slide'); 
}); 
+0

애니메이션으로 헤더를 슬라이드하고 싶습니까? –

+0

예 그 부분을했습니다. 브라우저의 크기를 조정하면 헤더가 "준비"위치로 슬라이드됩니다. 나는 그것이 즉시 숨겨지기를 원한다. 그런 다음 "메뉴"를 클릭하면 탐색이 슬라이드되고 메뉴가 표시됩니다. –

+0

안녕하세요. 이제 답변을 볼 수 있습니다. !! :) –

답변

2

다음과 같은 CSS를 변경하기 만하면됩니다 :

.header-bottom{ 
    transform:translateX(-101%); 
     -webkit-transform:translateX(-101%); 
     -moz-transform:translateX(-101%); 
     -o-transform:translateX(-101%); 
     -ms-transform:translateX(-101%); 
} 

CodePen에서 시험해 볼 수 있습니다.

+0

안녕 Yashwardhan, 당신은 중단 점에 브라우저의 크기를 조정할 수 있습니까? 레이아웃을 변경 한 다음 번역을 보았습니까? 실제로 탐색을 즉시 숨기고 애니메이션을 표시하지 않기를 원했습니다. 브라우저 크기를 조정하면 오류가 발생합니다. 중단 점에 대한 새 레이아웃을 표시 한 다음 왼쪽으로 슬라이드합니다. –

+0

애니메이션을 오른쪽으로 밀어 넣지 않으시겠습니까? 어쨌든 그것을 숨길뿐입니다. –

+0

그래, 나는 당신이 말한 것을 모두 시도해 보았고, 같은 코드가 에러없이 잘 작동했다 !! –

0

그래서 알아 냈습니다. 표시해야합니다 : 먼저 nav을 숨기려면 없음

.header-bottom{ 
    transform:translateX(-100%); 
    -webkit-transform:translateX(-100%); 
    -moz-transform:translateX(-100%); 
    -o-transform:translateX(-100%); 
    -ms-transform:translateX(-100%); 
    top:0; 
    height: 100%; 
    left: 0; 
    width: 100%; 
    background-color: #000; 
    z-index: 1; 
    transition:transform 0.5s cubic-bezier(.91,.12,.46,.8); 
    -webkit-transition:-webkit-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
    -moz-transition:-moz-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
    -ms-transition:-ms-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
    -o-transition:-o-transform 0.5s cubic-bezier(.91,.12,.46,.8); 
    display:none; 
} 

JS에서는 fadeToggle 및 toggleClass가 필요합니다.

$('#menu-toggle').click(function(){ 
    $('.header-bottom').fadeToggle().toggleClass('slide'); 
}); 
관련 문제