2016-05-18 2 views
1

私はトップナビゲーションバーとサイドバーを持つブートストラップで自分のプロジェクトを構築しました。私のプロジェクトで終了時のブートストラップサイドバーを折りたたみ可能に変更する

http://www.makerstudios.com/

しかし、サイドバーのページの左側にある:

は今、私はこのような折りたたみ式は、サイドバーを作成する必要があります。最小限の変更でこのサイドバーを折りたたむことができますか?

HTML:

<div class="col-md-3"> 
    <div class="navbar-default sidebar" role="navigation"> 
     <div class="sidebar-nav"> 
      <ul class="nav" id="side-menu"> 
       <li>...</li> 
       <li>...</li> 
      </ul> 
     </div> 
    </div> 
</div> 
+0

[さまざまな方法があります](http://blog.codeply.com/2016/05/18/bootstrap-sidebar-responsive-examples/)、ほとんどは 'position:absolute'というラッパーを使用しています – ZimSystem

答えて

1

あなたは、簡単なjqueryのを使用することができます。

まず、オフスクリーンにするためにサイドバーを設定する必要があります。これは、その後、あなたがメニューを引き出すことにしたいボタンをクリックする上でリッスンjqueryのコードを、確認する必要があり

.sidebar { 
    left: -300px // For example 
} 

を追加することによって行うことができます。ボタンが押されると

、jqueryのコードは、サイドバーを再度表示させると、visble範囲(左:0;)にそれを持っていけば

<script> 


$(function(){ 
    $("#menu").click(function open(){ 
     $('.sidebar').animate({ left: '0'}, 500); 
     });//opening it 
    $("#close").click(function close(){ 
     $('.sidebar').animate({ left: '-200px'}, 500); 
    });// 'Closing it'. Takin it back off -screen within the timewindow of 500ms 
    }); 


</script> 

あなたが今しなければならないだろうだから何、ですオフスクリーンバーを設定して、開閉のボタンを作成します。

このソリューションは、サイドバーを既存のボディの上に置くことになりますが、リンクしているサイトと同じようにしたい場合は、jqueryにコマンドを追加するだけですコンテンツ部分(表示部分)をサイドバーの移動量と同じ量だけ移動します。

+0

サイドバーを隠して、サイドバーの場所に空白を残しておきます。メニューが隠されているにもかかわらず、空白は必要ありません。ページ上の他のコンテンツは、ページに合わせて幅を広げます。 –

+0

.content -divはサイドバーだけどすべてが入っていて、そのdivの幅を100%または100vwに設定します。 コードを自分で見ることができれば、本当に役に立ちます。 – matsutus

+0

私はあなたに実例のコードペンを作った。しかし、stackoverflowはフリーコードの場所ではないことに注意してください。あなたはこれらのことを自分で学ぶべきです。 http://codepen.io/Matsutus/pen/KzjVKm これは完璧ではありませんが、簡単な落書きの場合は役立ちます。あなたはあなた自身の残りの部分を自分で見つけ出すことができます – matsutus

関連する問題