【问题标题】:Resorting the active bootstrap tab when stacked堆叠时使用活动的引导选项卡
【发布时间】:2016-04-26 23:40:27
【问题描述】:

对于我正在开发的新引导网站,我在导航选项卡堆叠时对活动选项卡进行排序,以便所选选项卡始终连接到选项卡窗格。虽然这行得通,但对我来说感觉就像一个黑客。有没有更好的方法来保留原始的 Tab 键顺序?

HTML 标记:

<div id="tab-bundle" class="container-fluid">
    @Html.HiddenFor(model => model.SelectedBundle)
    <ul class="nav nav-tabs" id="coverageTabs">
         <li><a href="#Minimum">@LanguageDb.Me.Minimum</a></li>
         <li><a href="#Better">@LanguageDb.Me.Better</a></li>
         <li><a href="#Best">@LanguageDb.Me.Best</a></li>
         <li><a href="#Custom">@LanguageDb.Me.Custom</a></li>
    </ul>

    <div class="tab-content">
         <div class="tab-pane active bg-info" id="ajaxPanel">
            @Html.Partial("SelectedBundle", Model)
         </div>
    </div>
</div>

Javascript:

$(document).ready(function () {

    var updateCoverage = function (e) {
        e.preventDefault();
        var $tab = $(this);
        $('#SelectedBundle').val($(this).attr("href").substr(1));
        $('#coverageTabs a').css({ backgroundColor: "", color: "" });

        // ajax omitted for brevity
        $tab.tab('show').css('background-color', $('#ajaxPanel').css('background-color')).css('color', $('#ajaxPanel').css('color'));

        if ( $('#coverageTabs').width() < 768 ) {
          $tab.closest('li').appendTo('#coverageTabs');
        }
    };

    $('a[href=#' + $('#SelectedBundle').val() + ']').tab('show').css('background-color', $('#ajaxPanel').css('background-color')).css('color', $('#ajaxPanel').css('color')); ;

    $('#coverageTabs a').click(updateCoverage);

});

屏幕截图(注意“最小值”选项卡已移至末尾):

【问题讨论】:

    标签: jquery css twitter-bootstrap


    【解决方案1】:

    这让我想起了我刚刚回答的一个问题:

    Unordered list - list item position

    我们的想法是,使用真正最少的 JavaScript(例如,添加和删除“活动”类),我们仍然可以实现您想要做的事情:

    您的 CSS 可能包含如下内容:

    ul {
      display: flex;
    }
    
    li[class=active] {
      order: 4; /* whatever the last <li> slot is */
      background: green
    }
    

    然后,当您的 JavaScript 分配活动类时,&lt;li class="active"&gt; 应该只是神奇地将自身重新排序到列表的末尾并连接到选项卡窗格。

    【讨论】:

    • 我有机会尝试一下,发现将 ul 更改为 display:flex 会阻止引导程序堆叠标签。这仍然很有帮助,但由于它删除了一些预期的引导功能,我不得不将其作为接受的答案删除。
    • 很抱歉。下次我考虑针对 Bootstrap 相关问题的 flexbox 解决方案时,我会记住这一点。
    • 找到解决方案@media screen and (max-width: 768px) {ul {flex-direction: column;} }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    相关资源
    最近更新 更多