2015-07-30 4 views
0

Я не могу обойти эту тему: я создаю мобильный webapp с бутстрапом. Так что у меня есть контейнер с навигационной панелью, некоторые дивами и снова пилюлей-нав ниже:Bootstrap - div over div slideup

<div class="container"> 
<!-- top navbar --> 
    <nav class="navbar navbar-default navbar-fixed-top"> 
    <!-- ... --> 
    </nav> 

    <div class="tab-content"> 

     <div role="tabpanel" class="tab-pane active fade in" id="map-panel"> 
      <div id="map"></div> 


      <div class="container-fluid" id="teaser-container"> 
       <div class="row" id="teaser-slideup-button"> 
        <div class="col-xs-12"> 
         <a role="button" href="#teaser-content"> 
          <i class="fa fa-chevron-up"></i> 
         </a> 
        </div> 
       </div> 
       <div class="row" id="teaser-header"> 
        <div class="col-xs-12">Teaser header</div> 
       </div> 

       <div id="teaser-content"> 
        <div class="row"> 
         <div class="col-xs-12"> 
          <div style="height: 160px" /> 
         </div> 
        </div> 
       </div> 
      </div>    
     </div> 
    </div> 

    <nav class="navbar navbar-default navbar-fixed-bottom"> 
     <!-- ... --> 
    </nav> 

</div> 

То, что я хочу сделать, это позволить # тизера-контейнер скользит по #Map снизу. В основном

$('#teaser-slideup-button').on('click', function (e) { 

    $('#teaser-container').animate({ 
      'bottom': '0px' 
    }); 

}); 

Некоторые соответствующие CSS:

#teaser-container { 
    z-index:1000; 
    position: absolute; 
    bottom: -100px; 
    background: #fff; 
    width: 100%; 
    display: inline-block; 
    overflow-y: hidden; 
} 

#map-panel { 
    position: absolute; 
    top: 0px; 
    overflow-y: hidden; 
    height: 100%; 
    width: 100%; 
} 

Что происходит, хотя, является то, что ДИВ просто появляется и, казалось бы, анимация происходит потом, прокручивая карту DIV вверх. Я создал JSFiddle здесь:

https://jsfiddle.net/jrubisch/hvpjrwrq/

Это не должно быть так трудно, я думаю, но я вроде запутался здесь ... Я был бы рад предоставить более подробную информацию, если это необходимо.

Спасибо!

ответ

0

я вроде решил ее перегруппировка разметки:

<div class="container-fluid" id="teaser-container"> 

    <div class="teaser-inner"> 
     <div class="row" id="teaser-slideup-button"> 
      <div class="col-xs-12"> 
       <a role="button" href="#"> 
        <i class="fa fa-chevron-up"></i> 
       </a> 
      </div> 
     </div> 
     <div class="row" id="teaser-header"> 
      <div class="col-xs-12">Teaser Header</div> 
     </div> 

     <div class="row" id="teaser-content"> 
      <div class="col-xs-12"> 
       <div style="height: 160px" /> 
      </div> 
     </div> 
    </div> 
</div> 

с использованием position:relative на родителе и position:absolute на ребенке:

#map-panel { 
    height: 100%; 
    width: 100%; 
    position: relative; 
} 
#teaser-container { 
    z-index:1000; 
    position:absolute; 
    bottom: 20px; 
    background: #fff; 
    width: 100%; 
    height:40px; 
    overflow: hidden;  
} 

и оживление свойства высоты (b asically что делает $ .slideUp)

$('#teaser-container').animate({ 
    'height': '260px' 
}, 500); 

если кто-то знает более элегантное решение, пожалуйста, дайте мне знать

0

Это может или не поможет, выглядит и похоже работает аналогичным образом, но использует кнопки и аккордеон.

var map; 
 

 
function initialize() { 
 
    map = new google.maps.Map(document.getElementById('map-canvas'), { 
 
    zoom: 8, 
 
    center: { 
 
     lat: -34.397, 
 
     lng: 150.644 
 
    } 
 
    }); 
 
} 
 

 
google.maps.event.addDomListener(window, 'load', initialize); 
 

 
$('.collapse').on('shown.bs.collapse', function() { 
 
    $(this).parent().find(".fa-chevron-up").removeClass("fa-chevron-up").addClass("fa-chevron-down"); 
 
}).on('hidden.bs.collapse', function() { 
 
    $(this).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-up"); 
 
});
html, 
 
body, 
 
#map-canvas { 
 
    height: 100%; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.navbar { 
 
    margin-bottom: 0 !important; 
 
} 
 
.navbar-fixed-bottom .col-md-6 { 
 
    padding: 0; 
 
    border: none; 
 
} 
 
.navbar-fixed-bottom .btn { 
 
    width: 100%; 
 
    height: 50px; 
 
    border-radius: 0; 
 
    margin: 0; 
 
    border: none; 
 
    padding-top: 15px; 
 
} 
 
.navbar-fixed-bottom .panel-group, 
 
.navbar-fixed-bottom .panel-heading { 
 
    padding: 0; 
 
    margin: 0; 
 
    border: none; 
 
    border-radius: 0; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.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.5/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> 
 
<nav class="navbar navbar-default"> 
 
    <div class="container-fluid"> 
 
    <!-- Brand and toggle get grouped for better mobile display --> 
 
    <div class="navbar-header"> 
 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> 
 
     </button> 
 
     <a class="navbar-brand" href="#">Brand</a> 
 
    </div> 
 

 
    <!-- Collect the nav links, forms, and other content for toggling --> 
 
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
     <ul class="nav navbar-nav"> 
 
     <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a> 
 
     </li> 
 
     <li><a href="#">Link</a> 
 
     </li> 
 
     <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a> 
 
      <ul class="dropdown-menu"> 
 
      <li><a href="#">Action</a> 
 
      </li> 
 
      <li><a href="#">Another action</a> 
 
      </li> 
 
      <li><a href="#">Something else here</a> 
 
      </li> 
 
      <li role="separator" class="divider"></li> 
 
      <li><a href="#">Separated link</a> 
 
      </li> 
 
      <li role="separator" class="divider"></li> 
 
      <li><a href="#">One more separated link</a> 
 
      </li> 
 
      </ul> 
 
     </li> 
 
     </ul> 
 
    </div> 
 
    <!-- /.navbar-collapse --> 
 
    </div> 
 
</nav> 
 
<div id="map-canvas"></div> 
 
<div class="navbar navbar-default navbar-fixed-bottom"> 
 
    <div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true"> 
 
    <div class="panel panel-default"> 
 
     <div class="panel-heading" role="tab" id="headingOne"> 
 
     <div class="btn btn-warning" id="lowerOpen" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne"> <i class="fa fa-chevron-up"></i> 
 
     </div> 
 
     </div> 
 
     <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne"> 
 
     <div class="panel-body">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua 
 
      put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, 
 
      raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.</div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="col-md-6"> 
 
    <div class="btn btn-primary"><i class="fa fa-map-marker"></i> Some</div> 
 
    </div> 
 
    <div class="col-md-6"> 
 
    <div class="btn btn-default"><i class="fa fa-sliders"></i> Controls</div> 
 
    </div> 
 
</div>

Смежные вопросы