【问题标题】:How to use bootstrap scrollspy with collapsible menu?如何使用带有可折叠菜单的 bootstrap scrollspy?
【发布时间】:2015-02-03 16:26:42
【问题描述】:

我有一个 MCQ 问题网站。在一次考试中,可能有来自不同学科的 100-200 个问题。所以我想让导航更容易。由于导航很大,所以我想在开放主题下打开问题,即:当主题 1 处于活动状态时,只有主题 1 下的问题链接可见,如 Bootstrap 网站的右侧导航。我的工作示例如下所示。

我根据他们的网站说明使用了 Bootstrap scrollspy 工作正常。但是当我尝试让它可折叠 (如 Bootstrap 网站的正确导航) 它不起作用。

我正在使用 Bootstrap - 3.3.2

<body data-spy="scroll" data-target="#subjectNavbar" data-offset="0">
    <header id="header" class="container-fluid navbar-fixed-top">
        ...
    </header>
    <div class="container">
        <div class="row">
            <aside id="left-column" class="col-sm-3">
                <nav id="subjectNavbar" class="sub-nav">
                    <ul class="nav subject-ul">
                        <li>
                            <a href="#subject-1">Subject 1</a>
                            <ul class="list-inline question-ul">
                                <li id="question-no-1"><a href="#question-1">1</a></li> 
                                <li id="question-no-2"><a href="#question-2">2</a></li> 
                                <li id="question-no-3"><a href="#question-3">3</a></li> 
                                ...
                                <li id="question-no-20"><a href="#question-20">20</a></li> 
                            </ul>
                        </li>
                        <li>
                            <a href="#subject-2">Subject 2</a>
                            <ul class="list-inline question-ul">
                                <li id="question-no-21"><a href="#question-21">21</a></li> 
                                <li id="question-no-22"><a href="#question-22">22</a></li> 
                                <li id="question-no-23"><a href="#question-23">23</a></li> 
                                ...
                                <li id="question-no-40"><a href="#question-40">40</a></li> 
                            </ul>
                        </li>
                        ...
                        <li>
                            <a href="#subject-5">Subject 5</a>
                            <ul class="list-inline question-ul">
                                <li id="question-no-81"><a href="#question-81">81</a></li> 
                                <li id="question-no-82"><a href="#question-82">82</a></li> 
                                <li id="question-no-83"><a href="#question-83">83</a></li> 
                                ... 
                                <li id="question-no-100"><a href="#question-100">100</a></li>
                            </ul>
                        </li>
                    </ul>
                </nav>                
            </aside>
            <section class="col-sm-6">
                <div class="question-paper">
                    <div class="subject-group" id="subject-1">
                        <h2>Subject 1</h2>
                        <article id="question-1">
                            <header><em>1.</em> Question 1</header>
                            <ol>
                                <li>Option A</li>
                                <li>Option B</li>
                                <li>Option C</li>
                                <li>Option D</li>
                            </ol>
                        </article>
                        ...
                        <article id="question-20">
                            <header><em>20.</em> Question 20</header>
                            <ol>
                                <li>Option A</li>
                                <li>Option B</li>
                                <li>Option C</li>
                                <li>Option D</li>
                            </ol>
                        </article>
                    </div> 
                    ...
                    <div class="subject-group" id="subject-5">
                        <h2>Subject 5</h2>
                        <article id="question-81">
                            <header><em>81.</em> Question 81</header>
                            <ol>
                                <li>Option A</li>
                                <li>Option B</li>
                                <li>Option C</li>
                                <li>Option D</li>
                            </ol>
                        </article>
                        ...
                        <article id="question-100">
                            <header><em>100.</em> Question 100</header>
                            <ol>
                                <li>Option A</li>
                                <li>Option B</li>
                                <li>Option C</li>
                                <li>Option D</li>
                            </ol>
                        </article>
                    </div> 
                </div>
            </section>
            <aside id="right-column" class="col-sm-3">
                ...
            </aside>
        </div><!--/row-->
    </div><!--/.container-->
    <footer class="container">
        ...
    </footer>
</body>

【问题讨论】:

  • 添加您的示例代码有助于找出问题,通常是标签或属性类的错误关闭
  • 我已经添加了我的项目的示例代码。你能帮我资助解决方案吗@CheGueVerra

标签: twitter-bootstrap-3 scrollspy


【解决方案1】:

在对引导网站原生 css 和 javascript 文件进行深入研究后,我发现他们使用 css 使导航可折叠。它们使活动下的 ul 可见,而其他子 ul 不显示。

.subject-ul .question-ul{
    display:none;
}

.subject-ul li.active>.question-ul{
    display:visible;
}

【讨论】:

    【解决方案2】:

    Chayan's answer 说得很好。除了 display:visible 对我不起作用,所以我使用 display:block 并成功了。

    .subject-ul .question-ul{
         display:none;
    }
    
    .subject-ul li.active>.question-ul{
         display:block;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 2014-12-08
      • 2015-04-19
      • 1970-01-01
      • 2015-12-24
      • 2015-01-18
      相关资源
      最近更新 更多