【问题标题】:jQuery accordion like tabs像标签一样的 jQuery 手风琴
【发布时间】:2016-11-22 07:29:40
【问题描述】:

我正在使用 Bootstrap 和 jQuery 手风琴。我必须使用手风琴以类似的风格制作标签。我的意思是,可点击的项目应该是内联的(如标签样式),而不是像列表(一个在另一个之下)。

有什么办法吗?

【问题讨论】:

  • 当您单击其中一个选项卡时,您希望子菜单选项水平显示在主选项卡的右侧还是垂直下方?
  • 谢谢@borbesaur,我需要垂直下方,就像标签一样,唯一的区别是点击该项目可以再次关闭

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

对于您的具体要求,我认为您需要使用 Syden 的答案,并进行一些定制。
使用引导折叠组件。

<p>
 <a class="btn btn-primary btn1" aria-expanded="false" aria-controls="collapseExample">
Link with href
  </a>
  <button class="btn btn-primary btn2" type="button" aria-expanded="false" aria-controls="collapseExample">
Button with data-target
 </button>
   </p>
  <div class="collapse" id="collapseExample1">
 <div class="card card-block">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
</div>
</div>
<div class="collapse" id="collapseExample2">
 <div class="card card-block">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
</div>
</div>

然后,使用 javascript,创建一个自定义点击功能,这样当您打开一个折叠时,它首先隐藏所有其他,然后显示您点击的那个 - 这样您就不必点击两次。

$(".btn1").on("click", function(){
$(".collapse").collapse('hide')
$("#collapseExample1").collapse('show')
});
 $(".btn2").on("click", function(){
$(".collapse").collapse('hide')
$("#collapseExample2").collapse('show')
});

注意:您需要为每个按钮添加点击功能才能使其正常工作。

【讨论】:

  • 您的解决方案部分有效,因为当项目关闭时,它们被正确内联,但是当面板打开时,所有其他项目都在打开的面板下(查看:[链接]imgur.com/a/d7pBR)。
  • 是的,这就是 bootstrap 手风琴,您单击一个选项卡,所有子选项都会出现在主标题下方。我什至问过你,你说你希望子选项出现在下面。 --“我需要垂直下方,就像一个标签一样,唯一的区别是点击该项目可以再次关闭”——你想让他们去哪里?
  • 对不起,也许我表达得不好。项目应始终保持内联(如选项卡样式),并且所有面板应在下方打开(如 [link]imgur.com/a/ycFne
  • 啊,我明白了。请参阅我上面的编辑。 Accordion 无法解决这个问题,我已经演示了如何自定义 Syden 的答案,以便它隐藏打开的菜单并显示一个新的 1,只需单击一下而不是 2
  • 现在效果很好! ;) 有没有办法简化 jquery 脚本?避免放置所有 btns 名称并仅使用一个类?
【解决方案2】:

我可以想到 2 个引导组件来实现这一点,标签和折叠。

Tags (span)

Put tags inside collapse

【讨论】:

  • 你的解决方案很好,问题是“折叠面板”是单独的,我的意思是有多个面板,点击一次,它不会关闭其他打开的面板,需要双击。
  • 检查这个例子:v4-alpha.getbootstrap.com/components/collapse/… 还要注意加载引导 js 文件。
  • 是的,但我需要水平内联而不是垂直内联的可点击项目(如标签样式,看这个 [link]imgur.com/a/ycFne
  • 我明白了,这个v4-alpha.getbootstrap.com/components/collapse/#example 呢?您仍然需要调整一些 CSS 以在按钮上实现一些“标签式”美感,但对齐和行为是存在的。
【解决方案3】:

我必须使用手风琴以类似的方式制作标签。我的意思是,可点击的项目应该是内联的(如标签样式),而不是像列表(一个在另一个之下)。

如果我正确理解了这个问题,您可以通过执行以下操作来完成此操作。

将所有内容包装在 panel-group 中,如 Bootstrap 所示,只需使用 &lt;ul&gt; 列表和 nav nav-tabs 类作为针对 div 面板的链接。

<div class="panel-group" id="accordion" role="tablist">
  <!-- Bootstrap Nav tabs -->
  <ul class="nav nav-tabs"> 
     <li><a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne"></li>
     ...
  </ul>
  <!-- Bootstrap collapse -->
  <div class="panel panel-default">
     <div id="collapseOne" class="panel-collapse collapse in">
        ...
     </div>
     ...
  </div>
</div>

然后移除默认面板边框

.panel-default {
  border: 0;
}

无需添加额外的 javascript,使用 Bootstrap 已经提供的。

这是一个工作代码笔供您查看。 http://codepen.io/yongchuc/pen/YpZvOJ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多