【问题标题】:Bootstrap 3.0.2 - Link content from one tab-pane to content in anotherBootstrap 3.0.2 - 将一个选项卡窗格中的内容链接到另一个选项卡窗格中的内容
【发布时间】:2014-08-26 21:14:35
【问题描述】:

我需要创建一个从一个选项卡窗格到另一个选项卡窗格中内容的链接。 例如,我有一个概览选项卡,并希望链接到图库选项卡中的特定图像,即当我单击链接时,它应该使另一个选项卡处于活动状态并移动到图库中的正确位置。

我在这里加载了代码http://jsfiddle.net/tyec07rx/

<div class="container">
    <div class="row">
        <div class="container">
            <ul class="nav nav-pills" role="tablist">
                <li class="active"><a href="#overview-panel" role="tab" data-toggle="tab">Overview</a></li>
                <li><a href="#gallery-panel" role="tab" data-toggle="tab">Gallery</a> </li>
            </ul>
        </div>

        <div class="tab-content">
            <div id="overview-panel" class="tab-pane active">
                <p>We have new <a href="#sticker-packs">sticker kits</a> for your capri.</p>
                <p>Options:</p>
                <ul>
                    <li><a href="#target">Target</a></li>
                    <li>British flag</li>
                    <li>Stripes</li>
                </ul>
            </div>
        <div id="gallery-panel" class="tab-pane">
            <p>Image of sticker packs to go here</p>
            <p class="sticker-packs">Clicked link from Overview should get here...</p>

            <ul>
                <li class="target">Target sticker image (click through from Overview should get here)</li>
                <li>British sticker image</li>
                <li>Stripe sticker image</li>
            </ul>

        </div>        
    </div>
</div>

【问题讨论】:

  • 不太清楚你要做什么。
  • 我有两个标签,概述和画廊。在概述选项卡中有很多信息,我希望人们能够单击超链接(在概述选项卡中),将他们带到图库选项卡中的特定图像。换句话说,当他们单击“贴纸套件”链接时,图库选项卡应该会变为活动状态,并且页面会滚动到“贴纸套件”图像。
  • 你真的是指 3.0.2 而不是 3.2.0?

标签: jquery twitter-bootstrap-3


【解决方案1】:

试试这个:

DEMO

HTML::

<div class="container">
    <div class="row">
        <div class="container">
            <ul class="nav nav-pills" role="tablist">
                <li class="active"><a href="#overview-panel" role="tab" data-toggle="tab">Overview</a></li>
                <li><a id="li" href="#gallery-panel" role="tab" data-toggle="tab">Gallery</a> </li>
            </ul>
        </div>

        <div class="tab-content">
            <div id="overview-panel" class="tab-pane active">
                <p>We have new <a href="#sticker-packs">sticker kits</a> for your capri.</p>
                <p>Options:</p>
                <ul>
                    <li><a id="btn" href="#target">Target</a></li>
                    <li>British flag</li>
                    <li>Stripes</li>
                </ul>
            </div>
            <div id="gallery-panel" class="tab-pane">
                <p>Image of sticker packs to go here</p>
                <p class="sticker-packs">Clicked link from Overview should get here...</p>

                <ul>
                    <li class="target">Target sticker image (click through from Overview should get here)</li>
                    <li>British sticker image</li>
                    <li>Stripe sticker image</li>
                </ul>

            </div>
        </div>
    </div>
</div>

脚本:

  $("#btn").click(function () {
            $("#li").click();
        });

【讨论】:

  • 谢谢。我使用了 davidkonrad 的解决方案,因为它更适合我现在的需求。
【解决方案2】:

你想要的是一个两步程序:

链接到内容 -> 打开选项卡 -> 滚动到内容

这不能通过引导程序本地完成。为了实现这一点,我们必须知道每个链接的目标选项卡,以及我们想要滚动到的元素的 id。把上面的链接改成

<li><a href="#target" data-tab="#gallery-panel">Target</a></li>

其中href.tab-content中目标的iddata-tab是我们要打开的标签的id。我们现在可以实现一个点击函数来执行标签切换和最终滚动:

$("a[data-tab]").on('click', function() {
    var tab = $(this).attr('data-tab'),
        target = $(this).attr('href');
    $('ul.nav a[href="' + tab + '"]').tab('show');
    $('html, body').animate({
        scrollTop: $(target).offset().top
    }, 1);    
});

现在,如果您想要链接到另一个标签,您只需定义data-tab,当然还有一个有效的idhref

查看工作演示 -> http://jsfiddle.net/k5Lv95L1/

【讨论】:

  • 这太完美了!谢谢你:)
猜你喜欢
  • 2022-07-22
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
相关资源
最近更新 更多