当前位置: 首页 > 知识库问答 >
问题:

在bootstrap3中切换边栏?

赵钊
2023-03-14

我正试图获得一个可切换的边栏:

无边栏:

>> | Main text
   | goes here

带侧边栏:

H1 << | Main text
H2    | goes here

(以下是一个行为示例:http://pythonhosted.org/cloud_sptheme--请参见侧栏上的按钮。使用其代码库并不容易,因为它不是基于引导的)

我从一个使用Bootstrap 2和jQuery 1.8的工作示例开始:jsfiddle,SO question,并试图使其在Bootstrap 3上工作。下面是一个代码(bootply上的代码):

javascript:

$.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);
    }
})

css

#toggleSidebar {
  position:fixed;
  display:block;
  left:0;
  top:45px;
  color:#779DD7;
  padding:2px 4px;
}

hide {
    display: none;
}

show {
    display: inherit;
}

html:

<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>

编辑:

离开画布并不是我所需要的:它不保留水平空间,它将div向右移动,然后div离开屏幕。Chanding-col-md-9到col-md-12再回来——这是我能想到的解决眼前问题的最好办法。这应该是简单的javascript,我不擅长。

共有3个答案

须旭
2023-03-14

哦,我解决了:

js:

$(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;
        }
    });
});

css:

#toggleSidebar {
  position:fixed;
  display:block;
  left:0;
  top:45px;
  color:#779DD7;
  padding:2px 4px;
}

html:

<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>

bootply上的演示。

哈襦宗
2023-03-14

看一看http://getbootstrap.com/examples/offcanvas/.这是一个由bootstrap本身制作的非画布示例。

我也喜欢这篇文章http://jasonweaver.name/lab/offcanvas/.

骆照
2023-03-14

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

http://www.bootstrapzero.com/bootstrap-template/off-canvas-sidebarhttp://www.bootstrapzero.com/bootstrap-template/facebook

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

 类似资料:
  • 我正在使用ActionBarDrawerToggle(导航抽屉),但我无法将其设置在右角(对于波斯语)。 这是我的activity\u main。xml代码: 这是我的活动课的相关代码: 我搜索过这个,我应该使用重力,但它在xml中不起作用。

  • 问题内容: 我在有菜单按钮的项目中使用react。 还有一个Sidenav组件,例如: 我编写了以下代码来切换菜单: 事实是,这不是DOM元素,我无法在他上添加类。 有人可以向我解释如何像在按钮上一样在组件上切换类吗? 问题答案: 如果您想让React正确高效地渲染DOM,则必须使用组件的State来更新组件参数,例如Class Name。 更新:我更新了示例,以在单击按钮时切换Sidemenu。

  • 有什么方法可以改变HtmlUnit中带有会话的url吗? 我的案子就像下面这样, null 这在HtmlUnit本身可能吗? 我的示例代码

  • 本文向大家介绍Android侧边栏滑动切换的view效果,包括了Android侧边栏滑动切换的view效果的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上所述是小编给大家介绍的Android侧边栏滑动切换的view效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 我正在使用比特板为Rook、Bishop和Queen生成攻击表。在我研究魔法比特板的过程中,似乎我需要剪掉所有攻击表的边缘。我将我的比特板存储在一个长的存储区中,正方形a1是LSB,正方形h8是MSB,一行一行地移动。下面是一个广场c2上一辆车的攻击表示例: 我的问题是,我需要让所有的在位板的边缘0。起初我尝试 现在,这适用于中心的大多数正方形,但对于边缘的攻击表,它会错误地将其剪辑。所以对于h8

  • 用 javascript 重新包装了 bootstrap3 的 modal 组件, 使用更方便更友好!  示例:   BootstrapDialog.alert('I want banana!');   选项多接口多,很实用!!