JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.6/leaflet.css">
<script src="http://cdn.leafletjs.com/leaflet-0.6/leaflet.js"></script>
<script src="http://wmgardner.co/js/bootstrap-transition.js"></script>
<script src="http://wmgardner.co/js/bootstrap-collapse.js"></script>
<script src="http://wmgardner.co/js/jquery.js"></script>
<link rel="stylesheet" href="http://wmgardner.co/css/bootstrap.css">
    <div class="viewport">
      <div class="frame">
        <div id="menu" class="menu nav-collapse collapse width">
          <div class="collapse-inner">
            <div class="navbar navbar-inverse">
              <div class="navbar-inner">
                Menu
              </div>
            </div>
            <ul class="nav nav-tabs nav-stacked">
              <li>Test</li>
            </ul>
          </div>
        </div>

        <div class="view">
          <div class="navbar navbar-inverse" id="navBar">
            <div class="navbar-inner">
              <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target="#menu">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
            </div>
          </div><div id="map">
          </div>
        </div>
      </div>
    </div>

CSS

html, body, #map {
        height: 100%;
        margin: 0;
      }
   body .viewport {
  position: absolute;
  padding: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
}

body .viewport .frame {
  position: absolute;
  width: 200%;
  height: 100%;
  top: 0;
  bottom: 0;
  left: 0; 
  padding: 0;
}

body .viewport .frame .navbar .navbar-inner {
  border-radius: 0;
  padding-left: 5px; 
}

body .viewport .frame .menu {
  height: 100%;
  /* background-color: #3D6AA2; */ 
}

body .viewport .frame .menu.collapse {
  float: left;
  height: 100% !important;
  width: auto; 
}

body .viewport .frame .menu.collapse.height {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
  -moz-transition: height 0.35s ease;
  -o-transition: height 0.35s ease;
  transition: height 0.35s ease; 
}

body .viewport .frame .menu.collapse.width {
  position: relative;
  width: 0;
  overflow: hidden;
  -webkit-transition: width 0.35s ease;
  -moz-transition: width 0.35s ease;
  -o-transition: width 0.35s ease;
  transition: width 0.35s ease; 
}

body .viewport .frame .menu.collapse.in.width {
  width: auto; 
}

body .viewport .frame .menu.collapse.in.height {
  height: auto; 
}

body .viewport .frame .menu .collapse-inner {
  position: relative;
  width: 250px;
  height: 100%; 
}

body .viewport .frame .menu .navbar .navbar-inner {
  text-align: center;
  color: grey;
  font-size: 1.2em;
  line-height: 38px; 
}

body .viewport .frame .menu .nav-stacked {
  padding: 0 10px; 
}

body .viewport .frame .view {
  width: 50%;
  height: 100%;
  overflow: hidden; 
}

body .viewport .frame .view .navbar .navbar-inner .btn-navbar {
  display: block;
  float: left; 
}

body .viewport .frame .view #map {
  margin: auto 15px;
  text-align: justify; 
}

JavaScript

// init basemap
	var basemap = 'http://{s}.tiles.mapbox.com/v3/mapbox.world-bright/{z}/{x}/{y}.png',
	basemap = new L.TileLayer(basemap);
	map = new L.Map('map', {zoomControl: false}); // init map and add TileLayers
	map.addLayer(basemap);
	map.setView(new L.LatLng(38.54817,115.22461), 4); // go to China
    
    $(document).ready(function(){
        var margin = 78;
        $('#map').on('mousedown',function(){
            $('#navBar').css('margin-top',margin+'px');
        });  
        $('#map').blur(function(){
            margin = margin+78;
        }); 
    });