2015-02-24 159 views
0

我在代碼中有一個側欄,我從here獲得。當頁面內容太長時,主體會滾動,但側邊欄不會。停止在y軸上滾動邊欄

Example fiddle

這是我想怎麼煤礦工作,但因爲我有一個頭,我得到見過here這個討厭的效果。

HTML:

<title>Simple Sidebar - Start Bootstrap Template</title> 
<body> 
    <!--Header--> 
    <div id="header-content-wrapper" class="as-header-wrapper"> 
     <div class="container-fluid"> 
      <div id="header" class="row"> 
       <div class="col-md-7 panel"> 
        <span>This is heading text!!!</span> 
       </div> 
      </div> 
     </div> 
    </div> 
    <div id="wrapper" class=""> 
     <!-- Sidebar --> 
     <div id="sidebar-wrapper"> 
      <ul class="sidebar-nav"> 
       <li class="sidebar-brand"> <a href="#"> 
         Start Bootstrap 
        </a> 

       </li> 
       <li> <a href="#">Dashboard</a> 

       </li> 
       <li> <a href="#">Shortcuts</a> 

       </li> 
       <li> <a href="#">Overview</a> 

       </li> 
       <li> <a href="#">Events</a> 

       </li> 
       <li> <a href="#">About</a> 

       </li> 
       <li> <a href="#">Services</a> 

       </li> 
       <li> <a href="#">Contact</a> 

       </li> 
      </ul> 
     </div> 
     <!-- /#sidebar-wrapper --> 
     <!-- Page Content --> 
     <div id="page-content-wrapper"> 
      <div class="container-fluid"> 
       <div class="row"> 
        <div class="col-lg-12"> 
         <h1>Simple Sidebar</h1> 

         <p>This template has a responsive menu toggling system. The menu will appear collapsed on smaller screens, and will appear non-collapsed on larger screens. When toggled using the button below, the menu will appear/disappear. On small screens, the page content will be pushed off canvas.</p> 
         <p>Make sure to keep all page content within the <code>#page-content-wrapper</code>.</p> <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a> 

         <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 
         Hellow 
        </div> 
       </div> 
      </div> 
     </div> 
     <!-- /#page-content-wrapper --> 
    </div> 
    <!-- /#wrapper --> 
    <!-- jQuery --> 
    <script src="js/jquery.js"></script> 
    <!-- Bootstrap Core JavaScript --> 
    <script src="js/bootstrap.min.js"></script> 
    <!-- Menu Toggle Script --> 
    <script> 
     $("#menu-toggle").click(function(e) { 
      e.preventDefault(); 
      $("#wrapper").toggleClass("toggled"); 
     }); 
    </script> 
</body> 
</html> 

CSS:

.as-header-wrapper{ 
    overflow-x: hidden; 
} 
/*! 
* Start Bootstrap - Simple Sidebar HTML Template (http://startbootstrap.com) 
* Code licensed under the Apache License v2.0. 
* For details, see http://www.apache.org/licenses/LICENSE-2.0. 
*/ 

/* Toggle Styles */ 
#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: 0; 
    height: 100%; 
    margin-left: -250px; 
    overflow-y: auto; 
    background: #000; 
    -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 #sidebar-wrapper { 
    width: 250px; 
} 
#page-content-wrapper { 
    width: 100%; 
    position: absolute; 
    padding: 15px; 
} 
#wrapper.toggled #page-content-wrapper { 
    position: absolute; 
    margin-right: -250px; 
} 
/* Sidebar Styles */ 
.sidebar-nav { 
    position: absolute; 
    top: 0; 
    width: 250px; 
    margin: 0; 
    padding: 0; 
    list-style: none; 
} 
.sidebar-nav li { 
    text-indent: 20px; 
    line-height: 40px; 
} 
.sidebar-nav li a { 
    display: block; 
    text-decoration: none; 
    color: #999999; 
} 
.sidebar-nav li a:hover { 
    text-decoration: none; 
    color: #fff; 
    background: rgba(255, 255, 255, 0.2); 
} 
.sidebar-nav li a:active, .sidebar-nav li a:focus { 
    text-decoration: none; 
} 
.sidebar-nav > .sidebar-brand { 
    height: 65px; 
    font-size: 18px; 
    line-height: 60px; 
} 
.sidebar-nav > .sidebar-brand a { 
    color: #999999; 
} 
.sidebar-nav > .sidebar-brand a:hover { 
    color: #fff; 
    background: none; 
} 
@media(min-width:768px) { 
    #wrapper { 
     padding-left: 250px; 
    } 
    #wrapper.toggled { 
     padding-left: 0; 
    } 
    #sidebar-wrapper { 
     width: 250px; 
    } 
    #wrapper.toggled #sidebar-wrapper { 
     width: 0; 
    } 
    #page-content-wrapper { 
     padding: 20px; 
     position: relative; 
    } 
    #wrapper.toggled #page-content-wrapper { 
     position: relative; 
     margin-right: 0; 
    } 
} 

如果我可以從與內容滾動(如設置在sidebar-wrapperposition: absolute;)保持側邊欄和保持匹配的側邊欄的高度內容,我認爲會工作正常。

任何意見是讚賞!

回答

1

需要一些修復在CSS表...

#wrapper { 
    padding-left: 0; 
    overflow-y:none; //THIS -> ADD 
    -webkit-transition: all 0.5s ease; 
    -moz-transition: all 0.5s ease; 
    -o-transition: all 0.5s ease; 
    transition: all 0.5s ease; 
    max-width:100%; //THIS -> ADD 
} 
#wrapper.toggled #page-content-wrapper { 
    position: absolute; 
    margin-right:-250px; //THIS -> REMOVE 
} 

編輯:

幾次測試之後,這裏是你試圖做什麼:http://jsfiddle.net/DTcHh/4759/

但也有一些問題當你在一個小屏幕上修改樣式...菜單樣式似乎改變(以白色背景而不是黑色)和一些其他問題...

This是關於css的「位置」和大小......但這是我認爲的一個很好的起點。

+0

感謝您的回覆。恐怕這不是我正在尋找的,我想停止滾動的導航欄,請參閱[this](http://jsfiddle.net/DTcHh/4717/) – TomSelleck 2015-02-24 12:37:35

+0

我只是不'不明白有什麼問題......即使是你的鏈接...導航欄(左)不滾動^^請提供更多詳細信息... – Julo0sS 2015-02-24 13:58:39

+0

你想讓你的邊欄保持在包裝的左上角?當你向下滾動時,你想讓你的導航欄熬夜? (所以當你進入頁面底部時它不會被看到?) – Julo0sS 2015-02-24 14:00:32