【问题标题】:Hide side-bar Menu-Toggle when page is loaded加载页面时隐藏侧边栏菜单切换
【发布时间】:2014-08-05 21:23:15
【问题描述】:

我希望使用 bootstrap 3 框架和侧边栏菜单切换有一个全面而简单的问题...目前,侧边栏菜单在我的网站启动时打开,然后我可以在页面打开后切换关闭已加载...但我想知道如何扭转这一点,以便在首次加载页面时关闭侧边栏菜单? 下面是我正在使用的 JS 框架,如果需要更多代码来理解这个问题,我很乐意提供它,但我认为这在引导框架中可能是通用的......提前致谢! 这是起始模板代码和链接... http://startbootstrap.com/template-overviews/simple-sidebar/

HTML:
 <!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Simple Sidebar - Start Bootstrap Template</title>

    <!-- Bootstrap Core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="css/simple-sidebar.css" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

</head>

<body>

    <div id="wrapper">
        <!-- Sidebar -->
        <div id="sidebar-wrapper">
            <ul class="sidebar-nav">
                <li class="sidebar-brand">
                    <a href="#">
                        Start Bootstrap
                    </a>
                </li>
                <li>
                    <a href="#">Dashboard</a>
                </li>
                <li>
                    <a href="#">Shortcuts</a>
                </li>
                <li>
                    <a href="#">Overview</a>
                </li>
                <li>
                    <a href="#">Events</a>
                </li>
                <li>
                    <a href="#">About</a>
                </li>
                <li>
                    <a href="#">Services</a>
                </li>
                <li>
                    <a href="#">Contact</a>
                </li>
            </ul>
        </div>

        <!-- /#sidebar-wrapper -->

        <!-- Page Content -->
        <div id="page-content-wrapper">
<div class="toggled">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-lg-12">
                        <h1>Simple Sidebar</h1>
                        <p>This template has a responsive menu toggling system. The menu will appear collapsed on smaller screens, and will appear non-collapsed on larger screens. When toggled using the button below, the menu will appear/disappear. On small screens, the page content will be pushed off canvas.</p>
                        <p>Make sure to keep all page content within the <code>#page-content-wrapper</code>.</p>
                        <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a>
                    </div>
                </div>
            </div>
        </div>
        <!-- /#page-content-wrapper -->

    </div>
    <!-- /#wrapper -->

    <!-- jQuery Version 1.11.0 -->
    <script src="js/jquery-1.11.0.js"></script>

    <!-- Bootstrap Core JavaScript -->
    <script src="js/bootstrap.min.js"></script>

    <!-- Menu Toggle Script -->
    <script>
    $("#menu-toggle").click(function(e) {
        e.preventDefault();
        $("#wrapper").toggleClass("toggled");
    });
    </script>

</body>

</html>


    CSS:
/*!
 * Start Bootstrap - Simple Sidebar HTML Template (http://startbootstrap.com)
 * Code licensed under the Apache License v2.0.
 * For details, see http://www.apache.org/licenses/LICENSE-2.0.
 */

/* Toggle Styles */

#wrapper {
    padding-left: 0;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}

#wrapper.toggled {
    padding-left: 250px;
}

#sidebar-wrapper {
    z-index: 1000;
    position: fixed;
    left: 250px;
    width: 0;
    height: 100%;
    margin-left: -250px;
    overflow-y: auto;
    background: #000;
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}

#wrapper.toggled #sidebar-wrapper {
    width: 250px;
}

#page-content-wrapper {
    width: 100%;
    padding: 15px;
}

#wrapper.toggled #page-content-wrapper {
    position: absolute;
    margin-right: -250px;
}

/* Sidebar Styles */

.sidebar-nav {
    position: absolute;
    top: 0;
    width: 250px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-nav li {
    text-indent: 20px;
    line-height: 40px;
}

.sidebar-nav li a {
    display: block;
    text-decoration: none;
    color: #999999;
}

.sidebar-nav li a:hover {
    text-decoration: none;
    color: #fff;
    background: rgba(255,255,255,0.2);
}

.sidebar-nav li a:active,
.sidebar-nav li a:focus {
    text-decoration: none;
}

.sidebar-nav > .sidebar-brand {
    height: 65px;
    font-size: 18px;
    line-height: 60px;
}

.sidebar-nav > .sidebar-brand a {
    color: #999999;
}

.sidebar-nav > .sidebar-brand a:hover {
    color: #fff;
    background: none;
}

@media(min-width:768px) {
    #wrapper {
        padding-left: 250px;
    }

    #wrapper.toggled {
        padding-left: 0;
    }

    #sidebar-wrapper {
        width: 250px;
    }

    #wrapper.toggled #sidebar-wrapper {
        width: 0;
    }

    #page-content-wrapper {
        padding: 20px;
    }

    #wrapper.toggled #page-content-wrapper {
        position: relative;
        margin-right: 0;
    }
}

【问题讨论】:

  • 您缺少 bootply 或 bin 以及 html 和 css。问题是 Bootstrap 没有在其默认内容中提供侧边栏菜单,这是您可以添加的东西,除非您显示代码和指向该代码的链接,否则没有人会知道您的意图。
  • 好吧,我已经添加了 html 和 css。谢谢

标签: menu twitter-bootstrap-3 toggle sidebar


【解决方案1】:

附加到#menu-toggle 的jQuery on click 事件是打开和关闭菜单的魔法。此处理程序只是将切换的类添加或删除到页面上具有包装器 id 的元素。

要在页面加载时关闭菜单,只需将切换的类添加到标记中的包装 div

<body>
    <div id="wrapper" class="toggled">

        <!-- ...the rest of your markup here -->

    </div>
</body>

【讨论】:

  • 我已经添加了 html 和 css,希望可以让我的问题更加清晰......谢谢
  • 它没有显示在您添加的标记中,但您的 html 中有一个元素具有 id="wrapper"。根据您现在包含的 css, .toggled 类是打开侧边栏导航的对象,因此如果您说加载页面时打开侧边栏,并且 没有其他 js 添加它class,那么该类可能在您的 html 标记中。要在加载页面时使侧边栏处于折叠状态,您应该从具有包装器 ID 的元素中删除 .toggled 类。
  • 好的,你解释的一切都很有道理,但我试着从我的标记中删除 .toggled 类,但似乎没有用,所以我可能只是因为混合了一些主题和样式表而遗漏了一些东西...我使用从引导站点使用的启动主题模板编辑了我的问题帖子,以供参考如何将初始状态侧菜单折叠为折叠状态,因此从基本的启动引导模板和然后申请我的编辑...感谢您迄今为止的帮助!
  • 我倒退了:添加切换的类以关闭菜单。
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 2019-05-30
  • 1970-01-01
  • 2018-12-05
相关资源
最近更新 更多