2017-03-02 102 views
0

我正在位於屏幕左側的菜單上工作,並且位於主內容區域的按鈕隱藏/顯示菜單。顯示隱藏左側導航?

當屏幕寬度小於768px我使用CSS隱藏菜單,即時通訊存在的問題是,因爲菜單已被隱藏,當用戶單擊按鈕而不是顯示它試圖隱藏的菜單菜單再次。

我有很多麻煩試圖解釋這個問題, 這裏是現場演示,所有我有的代碼。

代碼工作正常的桌面,問題是當屏幕小於768px。

這是使用顯示/隱藏菜單和內容移動

$('#menu-toggle').click(function(e) 
    { 
    e.preventDefault(); 
    $('#sidebar').toggleClass('show-hide'); 
    $('#page-content').toggleClass('show-hide'); 
    }); 

CSS

.show-hide 
{ 
    margin-left: -250px; 
} 

全碼現場演示功能的評價:https://jsfiddle.net/c7cpLq9m/

+1

請分享您的代碼。 – Ionut

+0

@lonut https://jsfiddle.net/c7cpLq9m/ – Pedro

+0

你看到的大,紅色的警告框,說你需要鏈接到的jsfiddle時發表[MCVE]你的問題,但你去了你的方式來解決那。只要你問問題並在你的問題中發佈你的代碼。 – j08691

回答

3

只是添加到了媒體查詢:

#wrapper .show-hide { 
    margin-left: 0; 
} 

$('#menu-toggle, .mobile-trigger').click(function(e) { 
 
    e.preventDefault(); 
 
    $('#sidebar').toggleClass('show-hide'); 
 
    $('#page-content').toggleClass('show-hide'); 
 
});
.container-fluid {} 
 

 
#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; 
 
} 
 
.mobile-trigger{ 
 
    display: none; 
 
} 
 
#sidebar { 
 
    z-index: 1000; 
 
    position: fixed; 
 
    height: 100%; 
 
    width: 250px; 
 
    overflow-y: auto; 
 
    background: #1b1e24; 
 
    -webkit-transition: all 0.5s ease; 
 
    -moz-transition: all 0.5s ease; 
 
    -o-transition: all 0.5s ease; 
 
    transition: all 0.5s ease; 
 
} 
 

 
.show-hide { 
 
    margin-left: -250px; 
 
} 
 

 
ul.sidebar-nav { 
 
    list-style: none; 
 
    padding: 0; 
 
} 
 

 
ul.sidebar-nav li a { 
 
    display: block; 
 
    padding: 10px 25px; 
 
    color: #8b91a0; 
 
    text-decoration: none; 
 
    transition: all 0.3s ease; 
 
    font-size: 1.1em; 
 
} 
 

 
ul.sidebar-nav li span { 
 
    padding-right: 10px; 
 
} 
 

 
ul.sidebar-nav li a:hover { 
 
    color: #fff; 
 
    background: rgba(255, 255, 255, 0.2); 
 
} 
 

 
#page-content { 
 
    transition: 0.5s; 
 
    /* \t position: absolute;  */ 
 
    padding-left: 255px; 
 
    /* \t width:100%; \t \t \t 
 
\t background: grey;*/ 
 
} 
 

 
@media (max-width: 768px) { 
 
    #sidebar { 
 
    margin-left: -250px; 
 
    } 
 
    #wrapper .show-hide{ 
 
    margin-left: 0; 
 
    } 
 
    .mobile-trigger{ 
 
    display: block; 
 
    } 
 
    #page-content { 
 
    padding-left: 0px; 
 
    } 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 
<div id="wrapper"> 
 

 
    <div id="sidebar"> 
 
    <ul class="sidebar-nav"> 
 
    <li><a class='mobile-trigger' href="#"><span class="glyphicon glyphicon-menu-hamburger"></span> Hide mobile menu</a></li> 
 
     <li class="sidebar-brand"><a href="#"><span class="glyphicon glyphicon-home"></span> Home</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-user"></span> Contacts</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-picture"></span> Content</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-inbox"></span> Inbound</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-envelope"></span> Outbound</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-globe"></span> Social</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-folder-close"></span> Automation</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-list-alt"></span> Reports</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-cog"></span> Settings</a></li> 
 
     <li><a href="#"><span class="glyphicon glyphicon-comment"></span> Feedback</a></li> 
 
    </ul> 
 
    </div> 
 
    <div id="page-content"> 
 
    <div class="container-fluid"> 
 
     <div class="row"> 
 
     <div class="col-lg-6"> 
 
      <h1>Duis aute</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <a href="#" class="btn btn-default" id="menu-toggle" style="float:rigth">Toggle Menu</a> 
 
      <h1>Duis aute</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     </div> 
 
     <div class="col-lg-6"> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
      <h1>Excepteur</h1> 
 
      <hr> 
 
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
 
      irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 
</div> 
 
<!-- ./wrapper -->

更新

在移動設備上是更好,如果你不推的內容,因爲它會顯得很凌亂。最好將菜單放在內容上並在菜單中添加一個按鈕以關閉它。爲此,我在菜單中添加了一個額外的元素,添加了類mobile-trigger,我默認將其隱藏在桌面上,並使用display: block;在移動設備上顯示它。還將選擇器mobile-trigger添加到點擊事件。

+0

不能正常工作,並沒有解釋提供。請相應地改進您的代碼。導航與主文本重疊,不能再次隱藏。 – Christoph

+0

@Christoph,我不認爲在移動設備上它需要推動內容,如果你趕上我的漂移。至少在智能手機上。 – Ionut

+0

我100%同意,但你需要一個可能性來再次減少菜單^ _ ^導航中的關閉按鈕將是最合適的,我猜。 – Christoph

1

在lonut的回答其更好添加此樣式:

#menu-toggle { 
    position: absolute; 
    top: 0; 
    right: 10px; 
} 

爲了使頁面的切換菜單按鈕右上角。