边栏切换内容挤压

时间:2015-08-17 09:28:57

标签: javascript jquery html css

下面是我的代码:

HTML

<div id="wrapper" style="background-color:red">
<div id="sidebar-wrapper" style="background-color:yellow">sidebar
    <div id="result"></div>
</div>
 <div id="header" class="container-fluid">
    <div class="navbar">
        <a href="#menu-toggle" id="menu-toggle" >Press</a>    
        <div>This is a serious health setback for me personally, but one of CN's core strengths is that we have a very experienced and tightly-knit senior  <span id="counterId"></span></div>
    </div>
</div>

CSS

#wrapper {
    width: 100vw;
    padding-left: 0;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}
#wrapper.toggled {
    padding-left: 250px;
}
#sidebar-wrapper {
    z-index: 1000;
    position: fixed; 
    left: 250px;
    width: 0;
    height: 100%;
    margin-left: -250px;
    overflow-y:auto;
    background: #5F657C;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
    box-shadow: inset -10px 0px 10px -7px grey;
}
#wrapper.toggled #sidebar-wrapper {
    width: 250px;
}

JS

$("#menu-toggle").click(function(e) {
e.preventDefault();
$("#wrapper").toggleClass("toggled");
});

jsfiddle如下: JSFIDDLE

我的问题是左侧黄色div,当侧边栏向左滑动时,里面的内容会有点挤压。

我想让它隐藏在下面并且不希望内容被挤压。你们有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

&#13;
&#13;
$("#menu-toggle").click(function(e) {
  e.preventDefault();
  $("#wrapper").toggleClass("toggled");
});
&#13;
           #wrapper {
             padding-left: 0;
             -webkit-transition: all 0.5s ease;
             -moz-transition: all 0.5s ease;
             -o-transition: all 0.5s ease;
             transition: all 0.5s ease;
           }
           #wrapper.toggled {
             padding-left: 250px;
           }
           #sidebar-wrapper {
             z-index: 1000;
             position: fixed;
             left: -250px;
             width: 250px;
             height: 100%;
             overflow-y: auto;
             background: #050545;
             -webkit-transition: all 0.5s ease;
             -moz-transition: all 0.5s ease;
             -o-transition: all 0.5s ease;
             transition: all 0.5s ease;
             box-shadow: inset -10px 0px 10px -7px grey;
           }
           #wrapper.toggled #sidebar-wrapper {
             left: 0;
           }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="wrapper" style="background-color:red">
  <div id="sidebar-wrapper" style="background-color:yellow">sidebar content show here
    <div id="result"></div>
  </div>
  <div id="header" class="container-fluid">
    <div class="navbar">
      <a href="#menu-toggle" id="menu-toggle">Press</a> 
      <div>This is a serious health setback for me personally, but one of CN's core strengths is that we have a very experienced and tightly-knit senior <span id="counterId"></span>
      </div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

宽度默认设置为250px。在我的片段中,我正在使用偏移left来隐藏/显示侧边栏。研究我的代码,你就会看到它是如何工作的。