2016-09-20 95 views
0

我试图修改Boostrap Offcanvas模板。通过点击关闭Bootstrap offcanvas边栏

工作的例子是http://getbootstrap.com/examples/offcanvas/

它的工作非常适合我,我想补充的唯一事情就是只有通过点击切换按钮,通过点击/点击它(现在的作品外关闭工具栏菜单)。

我将不胜感激您的帮助。

HTML

<div class="container"> 
    <div class="row row-offcanvas row-offcanvas-right"> 
    <div class="col-xs-12 col-sm-9"> 
     <p class="pull-right visible-xs"> 
     <button type="button" class="btn btn-primary btn-xs" data-toggle="offcanvas">Toggle nav</button> 
     </p> 
     <div class="row"> 
     <div class="col-xs-6 col-lg-4"> 
      <h2>Heading</h2> 
      <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> 
      <p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p> 
     </div> 
     <!--/.col-xs-6.col-lg-4--> 
     <div class="col-xs-6 col-lg-4"> 
      <h2>Heading</h2> 
      <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p> 
      <p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p> 
     </div> 
     <!--/.col-xs-6.col-lg-4--> 
     </div> 
     <!--/row--> 
    </div> 
    <!--/.col-xs-12.col-sm-9--> 

    <div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar"> 
     <div class="list-group"> <a href="#" class="list-group-item active">Link</a> <a href="#" class="list-group-item">Link</a> <a href="#" class="list-group-item">Link</a> </div> 
    </div> 
    <!--/.sidebar-offcanvas--> 
    </div> 
    <!--/row--> 

CSS

@media screen and (max-width: 767px) { 
    .row-offcanvas { 
    position: relative; 
    -webkit-transition: all .25s ease-out; 
    -o-transition: all .25s ease-out; 
    transition: all .25s ease-out; 
    } 

    .row-offcanvas-right { 
    right: 0; 
    } 


    .row-offcanvas-right 
    .sidebar-offcanvas { 
    right: -50%; /* 6 columns */ 
    } 


    .row-offcanvas-right.active { 
    right: 50%; /* 6 columns */ 
    } 

    .sidebar-offcanvas { 
    position: absolute; 
    top: 0; 
    width: 50%; /* 6 columns */ 
    } 
} 

jQuery的

$(document).ready(function() { 
    $('[data-toggle="offcanvas"]').click(function() { 
    $('.row-offcanvas').toggleClass('active') 
    }); 
}); 

回答

0

你可以尝试这样的事情:

$(document).click(function(e) { 
    var target = e.target; 
    if (!$(target).is('#sidebar') && !$(target).parents().is('#sidebar')) { 
     $('.row-offcanvas').removeClass('active') 
    } 
});