咨询电话:
15628812133
08
2023/09

Element自定义折叠折叠面板

发布时间:2023-09-08 15:37:41
发布者:`
浏览量:
0

今天做页面的时候看到了折叠面板,当然最简单的当然是用cssdisplaynone配合js来改变,但是动画的方面可能需要自己写,而且如果有类似手风琴类型的只能有一个为打开状态,又需要额外的判断,所以这里推荐elementUI的折叠面板,通过solt插槽来改变其中的内容和标题。

Element自定义折叠折叠面板

看一下设计图,与element有冲突的在于四个按钮和右侧折叠展开和右侧ui图标,其余就是普通的div+css就能解决。

Element自定义折叠折叠面板

首先,我们使用@click为四个按钮绑定点击事件。发现点击时弹窗正确显示,但是点击编辑按钮时折叠面板自动折叠了。

    Element自定义折叠折叠面板

其余三个也是一样的情况,为什么会出现这种情况呢?查阅了一下资料,原来是因为js的事件冒泡,由内到外进行事件传播,出发了父元素的折叠事件,于是添加了@click.stop得以解决。

右侧的文字和箭头问题。

查阅一下element的资料。发现当处在手风琴模式下,value值为折叠面板的name,而普通模式下是一个数组,能拿到name那么问题就很简单了。

Element自定义折叠折叠面板

我们通过拿到value绑定的值并使用三元运算来动态改变右侧文字,文字的问题解决。

关于箭头的问题,如果对定制需求不大,可以直接通过::v-deep强行改变element本身的css

如果有定制需求,我们也可以自己写图标,这里element也提供了大量的图标,我们通过使用’’>改变class的名字就能获取element里的各种图标。在通过前文所说的三元运算来修改i本身的css,给原本i设置transform: rotate(0deg);transition: all .2s;然后当折叠面板被选中,添加新的css设置transform: rotate(180deg);就能实现自定义的转换,并具有动画效果。

Element自定义折叠折叠面板


关键词:
返回列表