vue-echarts高度縮小時autoresize失效的原因和解決辦法
背景
項(xiàng)目中采用動態(tài)給x-vue-echarts style賦值width,height的方式實(shí)現(xiàn)echarts圖表尺寸的改變
<v-chart ... autoresize ></v-chart>
給v-chart添加autoresize后,在圖表寬度變化,高度增加時無異常,高度減小時圖表并未縮小,反而被截?cái)嗔?/p>
先說結(jié)論
添加全局樣式進(jìn)行覆蓋
div.vue-echarts-inner { height: 100% !important; }
原理
查看vue-echarts源碼
這里的inner以及useAutoresize中的root值為該dom節(jié)點(diǎn)
所以實(shí)際上是在監(jiān)聽div.vue-echarts-inner這個dom節(jié)點(diǎn)的尺寸變化,從而去給inner的子盒子設(shè)置width和height
下面是父盒子的css屬性
下面是inner的css屬性
問題就在于flex和height auto
- 父盒子為flex盒且flex-direction為column,子盒子設(shè)置flex-grow:1,那么子盒子會填滿父盒子的高度
- 父盒子設(shè)置高度為height:auto,那么高度會以其子盒子內(nèi)容高度為準(zhǔn),也就是子盒子是300px,就會把該盒子高度撐到300px
但兩者在一塊就有沖突
這里分為父,子,孫三個盒子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .father { display: flex; flex-direction: column; background-color: red; width: 500px; height: 500px; } .me { flex: 1; width: 300px; background-color: green; height: auto; } .son { width: 100px; background-color: blue; height: 500px; } </style> </head> <body> <div class="father"> <div class="me"> <div class="son"></div> </div> </div> </body> </html>
結(jié)論:
父盒子高度大于孫盒子時,子盒子高度跟隨父盒子
父盒子高度小于孫盒子時,子盒子高度跟隨孫盒子
回到vue-echarts場景,所以在高度減少時,inner的父盒子高度減少,但inner子盒子高度不變,所以inner盒子高度不會變,不會觸發(fā)resize
解決辦法:inner設(shè)置height: 100%,這樣inner的高度會跟隨其父盒子高度而變化,而不會受其子盒子影響
以上就是vue-echarts高度縮小時autoresize失效的原因和解決辦法的詳細(xì)內(nèi)容,更多關(guān)于vue-echarts縮小時autoresize失效的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用vue開發(fā)移動端管理后臺的注意事項(xiàng)
這篇文章主要介紹了使用vue開發(fā)移動端管理后臺的注意事項(xiàng),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03解決vue報(bào)錯:Do?not?mutate?vuex?store?state?outside?mutati
這篇文章主要介紹了解決vue報(bào)錯:Do?not?mutate?vuex?store?state?outside?mutation?handlers問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05詳解Vue+elementUI build打包部署后字體圖標(biāo)丟失問題
這篇文章主要介紹了詳解Vue+elementUI build打包部署后字體圖標(biāo)丟失問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07vue打印功能實(shí)現(xiàn)的兩種方法總結(jié)
在項(xiàng)目中,有時需要打印頁面的表格,所以下面這篇文章主要給大家介紹了關(guān)于vue打印功能實(shí)現(xiàn)的兩種方法,以及批量打印的完整代碼,需要的朋友可以參考下2021-06-06Vue?CompositionAPI中watch和watchEffect的區(qū)別詳解
這篇文章主要為大家詳細(xì)介紹了Vue?CompositionAPI中watch和watchEffect的區(qū)別,文中的示例代碼簡潔易懂,希望對大家學(xué)習(xí)Vue有一定的幫助2023-06-06antd vue 如何調(diào)整checkbox默認(rèn)樣式
這篇文章主要介紹了antd vue 如何調(diào)整checkbox默認(rèn)樣式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Vue監(jiān)聽器簡單使用及注意事項(xiàng)說明
這篇文章主要介紹了Vue監(jiān)聽器簡單使用及注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08基于Element封裝一個表格組件tableList的使用方法
這篇文章主要介紹了基于Element封裝一個表格組件tableList的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06