如何从左侧而不是顶部滑动导航栏?

2024-01-02

Bootstrap 支持从顶部切换导航栏。屏幕较小时如何从左侧滑动?

例如:

在上面提供的屏幕截图中,当调整屏幕大小时,导航栏会切换并从顶部向下滑动。我宁愿希望导航栏从左侧滑动。在Bootstrap中如何实现这个功能呢?

目前,根据代码,导航栏从顶部滑动。这是我的代码:

<nav class="navbar navbar-site navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button data-target=".navbar-collapse" data-toggle="collapse" class="navbar-toggle" type="button"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
            <a href="{% url 'index' %} " class="navbar-brand logo logo-title">
            <span class="logo-icon"><i class="icon icon-search-1 ln-shadow-logo shape-0"></i> </span> <span>Companyname </span> </a> 
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav navbar-right">
                {% if user.is_authenticated %}
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <span>{{user.first_name}}</span> <i class="icon-user fa"></i> <i class=" icon-down-open-big fa"></i></a>
                        <ul class="dropdown-menu user-menu">
                            <li class="active"><a href="account-home.html"><i class="icon-home"></i> Personal Home </a></li>
                            <li><a href="statements.html"><i class=" icon-money "></i> Payment history </a></li>
                            <li><a href="{% url 'logout' %}"> <i class="glyphicon glyphicon-off"></i> Signout </a></li>
                        </ul>
                    </li>
                {% else %}
                    <li><a href="{% url 'login' %}">Login</a></li>
                    <li><a href="{% url 'signup' %}">Signup</a></li>
                {% endif %}
                <li class="postadd"><a class="btn btn-block btn-border btn-post btn-danger" href="{% url 'post_ad' %}">Post Free Add</a></li>
            </ul>
        </div>
    </div>
</nav>

简单的。更改默认行为

<button ... data-toggle="collapse" data-target="#my-navbar-collapse">

to slide-collapse我们现在要实现的功能

<button ... data-toggle="slide-collapse" data-target="#my-navbar-collapse">

菜单所在的位置div有 id 的my-navbar-collapse。请注意,使用 id 而不是类选择器将提高可访问性,因为引导程序会将 ARIA 状态(展开/折叠)附加到菜单 自动地。

<div id="my-navbar-collapse" class="collapse navbar-collapse">
    <ul class="nav navbar-nav">
        ...
    </ul>
</div>

Class .collapse在引导程序中确保菜单最初是隐藏的。


代码:

然后将以下 Javascript 粘贴到页脚中的某个位置:

// mobile menu slide from the left
$('[data-toggle="slide-collapse"]').on('click', function() {
    $navMenuCont = $($(this).data('target'));
    $navMenuCont.animate({'width':'toggle'}, 350);
});

以及以下 CSS 属性:

#my-navbar-collapse {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    width: 280px; /*example + never use min-width with this solution */
    height: 100%;
}

一些提示:

  • 好主意还在于进行响应式查询,其中智能手机的菜单宽度为 100%,而不是始终为 280 像素。它就像一个魅力。
  • 如果您有适用于桌面的水平菜单,并且仅适用于较小设备的滑块,那么您可以轻松利用@grid-float-breakpoint and @grid-float-breakpoint-max https://stackoverflow.com/a/27094073/722036Bootstrap LESS 变量
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从左侧而不是顶部滑动导航栏? 的相关文章

随机推荐