我使用Bootstrap-vue,并有一个简单的折叠组件,这样我就可以切换内容的可见性。我正在寻找一种方法,在切换按钮中包含一个箭头图标,指示折叠状态:如果内容打开,则箭头向下,如果内容关闭,则箭头向侧面。
我在这里看了一下Bootstrap 4 Collapse show state with Font Awesome icon的解决方案。然而,虽然这适用于Bootstrap 4,但我不能让它与Bootstrap-vue一起工作,因为标记元素不同。那么,根据下面的标记,我如何才能实现折叠状态箭头?
<div>
<b-btn v-b-toggle.collapse3 class="m-1">Toggle Collapse</b-btn>
<b-collapse visible id="collapse3">
<b-card> some content </b-card>
</b-collapse>
</div>
4条答案
按热度按时间5n0oy7gb1#
这是我最终的解决方案,基于Riddhi的回答:
附加CSS:
我安装并导入了Font Awesome包,如这里所述https://fontawesome.com/how-to-use/on-the-web/using-with/vuejs和https://origin.fontawesome.com/how-to-use/with-the-api/setup/importing-icons。在我的main.js文件中,导入代码看起来像这样:
l0oc07j22#
示例HTML标记:
自定义CSS示例:
你可以在上面的css类的帮助下实现这一点。
2j4z5cfb3#
当使用事件
this.$root.$on
更改状态时,您可以使用自定义行为检查此文档:https://bootstrap-vue.org/docs/components/collapse#collapse
一个简单的例子:)
Good luck:)
k4ymrczo4#
一种更惯用的方法是只使用
v-model
,而不是使用CSS来推断UI状态。应成为:
您可以决定在数据部分中将
openState
声明为true
,或者在挂载或创建的生命周期钩子中设置它的值,可能基于prop(我在案例中所做的)。一旦用户开始单击,该值将与UI中的状态同步。箭头部分将变为:
或