【问题标题】:Immediately hide the navigation when browser width is reduced instead of showing a glimpse当浏览器宽度减小而不是显示一瞥时立即隐藏导航
【发布时间】:2016-12-21 08:00:30
【问题描述】:

我想在浏览器大小减小到响应式时立即隐藏导航。我正在使用媒体查询来控制导航布局。我编写的代码正在运行,但是当我减小浏览器宽度时,它仍然会向我显示导航的一瞥,然后向左滑动,而不是立即隐藏自身等待单击菜单按钮。

请看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');
});

【问题讨论】:

  • 你想用动画滑动标题?
  • 是的,我已经完成了那部分。现在,当我调整浏览器大小时,标题将滑动到“就绪”位置。我希望它立即被隐藏。然后当我单击“菜单”时,导航滑动并显示菜单。
  • 嘿,现在你可以看到答案了。!! :)

标签: jquery html css navigation responsive


【解决方案1】:

所以我想通了。我需要先 display:none 隐藏导航

.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');
});

【讨论】:

    【解决方案2】:

    您需要做的就是更改以下 css:

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

    你可以在 CodePen 上试一试。

    【讨论】:

    • 嗨 Yashwardhan,你能尝试将浏览器的大小调整到断点吗?您是否看到布局更改然后被翻译?我实际上希望导航立即隐藏而不显示动画。当我调整浏览器大小时,它看起来像一个错误。它显示断点的新布局,然后向左滑动。
    • 所以你不想滑动动画对吧?无论如何都想隐藏它。
    • 是的,我已经尝试了你所说的一切,同样的代码工作得很好,没有错误!!
    猜你喜欢
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多