Javascript 在bootstrap3中切换侧栏?

Javascript 在bootstrap3中切换侧栏?,javascript,twitter-bootstrap-3,sidebar,Javascript,Twitter Bootstrap 3,Sidebar,我正在尝试获得一个可切换的侧栏: 无侧边栏: >> | Main text | goes here 带侧边栏: H1 << | Main text H2 | goes here css: html: Toc在这里。 正文在这里。 我想你正在寻找一个“非画布”侧边栏。这里有两个从左边滑入的非画布引导示例 这两个示例都使用媒体查询来检测浏览器并相应地放置侧边栏。我认为您正在寻找“非画布”侧边栏。这里有两个从左边滑入的非画布引导示例 这两个示例都使用媒体查

我正在尝试获得一个可切换的侧栏:

无侧边栏:

>> | Main text
   | goes here
带侧边栏:

H1 << | Main text
H2    | goes here
css:

html:


Toc在这里。
正文在这里。

我想你正在寻找一个“非画布”侧边栏。这里有两个从左边滑入的非画布引导示例


这两个示例都使用媒体查询来检测浏览器并相应地放置侧边栏。

我认为您正在寻找“非画布”侧边栏。这里有两个从左边滑入的非画布引导示例

这两个示例都使用媒体查询来检测浏览器并相应地放置侧栏。

请查看。这是一个由bootstrap本身制作的非画布示例

我也喜欢这篇文章。

看一看。这是一个由bootstrap本身制作的非画布示例

我也喜欢这篇文章。

哦,我解决了它:

js:

css:

html:


Toc在这里。
正文在这里。
.

哦,我解决了这个问题:

js:

css:

html:


Toc在这里。
正文在这里。

.

看来你已经把事情复杂化了。忘记它或任何网站是如何做到的。只需在侧边栏div上调用
.toggle()
。@Timmerz:你能在bootply上开发一个小的工作示例吗?你有两个div,对吗?在侧边栏div中放置折叠按钮,在内容div中放置展开按钮。单击其中一个,在侧栏上调用
。切换
,并在侧栏打开时隐藏展开按钮…添加一点css。就这么简单。@Timmerz:在我看来,这或多或少与我在上面尝试过的方法相同。只是你建议用两个按钮而不是一个。我认为这种方法很好,任何一个在调试javascript方面有经验的人都可以在一瞬间解决它。除了它不适合你,你有一大堆addClass和removeClass以及1和2。那是什么?简化,我的朋友。简化。看起来你已经把它复杂化了。忘记它或任何网站是如何做到的。只需在侧边栏div上调用
.toggle()
。@Timmerz:你能在bootply上开发一个小的工作示例吗?你有两个div,对吗?在侧边栏div中放置折叠按钮,在内容div中放置展开按钮。单击其中一个,在侧栏上调用
。切换
,并在侧栏打开时隐藏展开按钮…添加一点css。就这么简单。@Timmerz:在我看来,这或多或少与我在上面尝试过的方法相同。只是你建议用两个按钮而不是一个。我认为这种方法很好,任何一个在调试javascript方面有经验的人都可以在一瞬间解决它。除了它不适合你,你有一大堆addClass和removeClass以及1和2。那是什么?简化,我的朋友。简化
$.asm = {};
$.asm.panels = 1;

function sidebar(panels) {
    $.asm.panels = panels;
    if (panels === 1) {
        $('#content').removeClass('col-md-9');
        $('#content').addClass('col-md-12');
        $('#sidebar1').removeClass('show');
        $('#sidebar1').addClass('hide');
    } else if (panels === 2) {
        $('#content').removeClass('col-md-12');
        $('#content').addClass('col-md-9');
        $('#sidebar1').removeClass('hide');
        $('#sidebar1').addClass('show');
    }
}

$('#toggleSidebar').click(function() {
    if ($.asm.panels === 1) {
        $('#toggleSidebar').addClass('fa-backward');
        $('#toggleSidebar').removeClass('fa-forward');
        return sidebar(2);
    } else {
        $('#toggleSidebar').removeClass('fa-backward');
        $('#toggleSidebar').addClass('fa-forward');
        return sidebar(1);
    }
})
#toggleSidebar {
  position:fixed;
  display:block;
  left:0;
  top:45px;
  color:#779DD7;
  padding:2px 4px;
}

hide {
    display: none;
}

show {
    display: inherit;
}
<div class="container">
  <div class="row">
    <div class="col-md-3 hide" id="sidebar1">
      <div id="sidebar" class="bs-sidebar nav bs-sidenav pre-scrollable" role="complementary">

        Toc goes here.

      </div>
    </div>

    <div class="col-md-12" id="content">

      Main text goes here.

    </div>

  </div>
  <a id="toggleSidebar" href="#toggleSidebar1" class="fa fa-forward"</a>
</div>
$(document).ready(function(){

    $.asm = {};
    $.asm.panels = 2;

    $('#toggleSidebar').click(function(){
        if ($.asm.panels === 1) {
            $('#toggleSidebar span').attr({'class': 'glyphicon glyphicon-backward'});
            $('#content').attr({'class': 'col-md-9'});
            $('#sidebar1').show();
            $.asm.panels = 2;
        } else {
            $('#toggleSidebar span').attr({'class': 'glyphicon glyphicon-forward'});
            $('#content').attr({'class': 'col-md-12'});
            $('#sidebar1').hide();
            $.asm.panels = 1;
        }
    });
});
#toggleSidebar {
  position:fixed;
  display:block;
  left:0;
  top:45px;
  color:#779DD7;
  padding:2px 4px;
}
<div class="container">
  <div class="row">
    <div class="col-md-3" id="sidebar1">
      <div id="sidebar" class="bs-sidebar nav bs-sidenav pre-scrollable" role="complementary">

        Toc goes here.

      </div>
    </div>

    <div class="col-md-9" id="content">

      Main text goes here.

    </div>

  </div>
  <button type="button" id="toggleSidebar" class="btn btn-primary"><span class="glyphicon glyphicon-backward"></span></button>
</div>