您好,登錄后才能下訂單哦!
今天小編給大家分享一下怎么用vue+antd實(shí)現(xiàn)折疊與展開組件的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
效果圖如下:
由于其它地方也需要實(shí)現(xiàn)這種功能,所以,需要封裝成一個(gè)組件。
代碼如下:
1.1 變量:open:表示現(xiàn)在的狀態(tài),true是展開,false為折疊
1.2 變量:height:表示折疊時(shí)的高度,也就是根據(jù)標(biāo)題的高度來的。
1.3 插槽:在組件中寫的內(nèi)容是一個(gè)插槽,可以預(yù)知組件內(nèi)有個(gè)<slot></slot>來接收外部的內(nèi)容
<openCloseBox :open="true" :height="40"> <div class="card_tit"> <a-icon type="minus" /><span class="tab_tit">常規(guī)工藝</span> </div> <div class="card_con"> <a-row> <a-col :span="12">產(chǎn)品類型:常規(guī)</a-col> <a-col :span="12">板子大?。撼R?guī)</a-col> <a-col :span="12">出貨方式:常規(guī)</a-col> <a-col :span="12">交貨數(shù)量:11</a-col> </a-row> </div> </openCloseBox>
1.4 組件引入
import openCloseBox from './modules/openCloseBox.vue'; export default { name: 'index', components: { openCloseBox, }, }
<template> <div class="openclose-box" :class="{ 'openclose-card-open': isOpen && card, 'openclose-card-close': !isOpen && card, 'openclose-box-open': isOpen && !card, 'openclose-box-close': !isOpen && !card, }" : > <div class="openclose-btn" :class="{ 'openclose-btn-box': !card }" @click="isOpen = !isOpen" ></div> <a-card v-if="card"> <slot></slot> </a-card> <slot v-else></slot> </div> </template> <script> export default { name: 'OpenCloseBox', props: { open: { type: Boolean, default: false, }, card: { type: Boolean, default: false, }, height: { type: Number, default: 60, }, }, data() { return { isOpen: this.open, }; }, }; </script> <style lang="less" scoped> .openclose-box { position: relative; /deep/ .ant-card-body { padding: 20px 18px; } .openclose-btn { font-size: 14px; line-height: 16px; color: #333; width: 100%; height: 56px; position: absolute; top: 0; right: 0; padding-right: 18px; display: flex; justify-content: flex-end; align-items: center; z-index: 1; user-select: none; cursor: pointer; .openclose-icon { color: #999; } &:hover { color: #f90; .openclose-icon { color: #f90; } } } .openclose-btn-box { height: 48px; } } .openclose-card-open { /deep/ .ant-card-body { height: auto; } } .openclose-card-close { /deep/ .ant-card-body { height: 56px; overflow: hidden; } } .openclose-box-open { height: auto; } .openclose-box-close { height: 60px; overflow: hidden; } </style>
完成!!
其它地方引用的效果如下:
展開效果:
折疊效果:
以上就是“怎么用vue+antd實(shí)現(xiàn)折疊與展開組件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。