最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue項目中echarts自適應(yīng)問題的高級解決過程

 更新時間:2023年05月13日 11:03:22   作者:xiahuaxuanlan1113  
雖然老早就看過很多echarts的例子,但自己接觸的項目中一直都沒有真正用到過,直到最近才開始真正使用,下面這篇文章主要給大家介紹了關(guān)于vue項目中echarts自適應(yīng)問題的高級解決過程,需要的朋友可以參考下

一、問題描述

1.1 頁面布局

項目首頁中有多個echarts圖表,如下圖所示:

頁面布局如下:

 index頁面(綠框)是父頁面,父頁面中包含A頁面(紅框)和B頁面(橙框),A頁面中有3塊,共5個echarts圖,B頁面中有2部分,左側(cè)部分中有3個餅圖,右側(cè)部分是列表,綜上,index頁面共8個ecahrts圖。ps:A頁面和B頁面都是組件化書寫。

1.2 問題復(fù)現(xiàn) 

點擊瀏覽器右上角的 向下還原 按鈕后,圖表顯示不正確,如下圖:

原因:未進行圖表自適應(yīng)

二、解決過程

2.1 增加圖表resize

window.addEventListener('resize', function () {
  chart.resize()
})

增加后,點擊瀏覽器向下還原按鈕后,效果如下:

 這里有個奇怪的現(xiàn)象:點擊瀏覽器向下還原按鈕,圖表顯示有問題;但是鼠標拖拽瀏覽器放大或縮小,圖表顯示正常(百思不得其解……)

通過Elements檢查發(fā)現(xiàn),canvas畫布大小與容器大小不一致。ps:pink背景是容器大小

2.2 解決canvas畫布大小和容器大小不一致的問題

利用resize設(shè)置width、height:

// 獲取容器的寬高
let width = this.$refs.chart1.offsetWidth
let height= this.$refs.chart1.offsetHeight
// 一般這一步是寫chart1.resize(),讓圖表根據(jù)當(dāng)前屏幕尺寸自適應(yīng),但是當(dāng)前canvas畫布大小與容器大小不一致,而容器大小已經(jīng)設(shè)置了百分比,所以可以在resize里面手動設(shè)置寬高,使其占滿整個容器
chart1.resize({
   // es6解構(gòu)
   width,
   height
})

每個圖表都設(shè)置,完成后效果如下:

 依然顯示有問題,要崩潰了……

耐心再找找原因!?。?/p>

苦思冥想后,猜測有可能的原因:窗口改變時 EChart 會立即獲取寬度,但是此時寬度還在變化中,不是最終值,所以 ECharts 顯示有問題,修改方法是添加一個延時。

2.3 動手添加延時

window.addEventListener('resize', function () {
  setTimeout(()=>{
     chart1.resize()
  }, 100)
})

添加完成后,依然沒效果……

是不是延時時間設(shè)置的有點短???那就設(shè)置500毫秒試試,來吧

依然沒效果,生氣了

想想其他方法,苦思冥想中,有了,那我監(jiān)聽瀏覽器onresize事件可不可以?監(jiān)聽到后,重新渲染圖表

2.4 監(jiān)聽瀏覽器onresize事件

去掉每個圖表對resize事件的監(jiān)聽,在父組件中增加對onresize事件的監(jiān)聽。

let _this = this;
window.onresize = function() {
  _this.$nextTick(()=>{
    setTimeout(()=>{
      _this.$refs.chartLine.executeAllChart1() // 重新渲染echarts的方法
      if(_this.isCollectAdmin) {
        _this.$refs.tableLine.executeAllChart2() // // 重新渲染echarts的方法
      }
    }, 500)
  })
}

 添加完后,看效果:

哇偶,成功了!??????

注意事項,onresize事件的監(jiān)聽要放在父組件中,否則不會生效!?。?!

三、解決方案

1、在每個圖表中 利用resize設(shè)置width、height(本文2.2)

2、在父組件監(jiān)聽瀏覽器onresize事件(本文2.4),一定要加延時,否則不生效?。。?00毫秒不行,加500!??!

over!??!

總結(jié)

到此這篇關(guān)于vue項目中echarts自適應(yīng)問題的高級解決過程的文章就介紹到這了,更多相關(guān)vue echarts自適應(yīng)問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue實現(xiàn)首頁banner自動輪播效果

    Vue實現(xiàn)首頁banner自動輪播效果

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)首頁banner自動輪播效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue可自定義tab組件用法實例

    Vue可自定義tab組件用法實例

    在本篇文章里小編給大家分享了關(guān)于Vue可自定義tab組件用法實例以及相關(guān)知識點,需要的朋友們參考下。
    2019-10-10
  • Vue引入vuetify框架你需要知道的幾點知識

    Vue引入vuetify框架你需要知道的幾點知識

    這篇文章主要介紹了Vue引入vuetify框架你需要知道的幾點知識,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Ubuntu22.04使用nginx部署vue前端項目的詳細教程

    Ubuntu22.04使用nginx部署vue前端項目的詳細教程

    這篇文章主要給大家介紹了關(guān)于Ubuntu22.04使用nginx部署vue前端項目的詳細教程,使用nginx部署前端項目是一篇非常詳細的教程,旨在幫助初學(xué)者使用Nginx來部署前端項目,需要的朋友可以參考下
    2024-03-03
  • Vue中.native修飾符的作用及說明

    Vue中.native修飾符的作用及說明

    這篇文章主要介紹了Vue中.native修飾符的作用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue-cli中為單獨頁面設(shè)置背景色的實現(xiàn)方法

    Vue-cli中為單獨頁面設(shè)置背景色的實現(xiàn)方法

    下面小編就為大家分享一篇Vue-cli中為單獨頁面設(shè)置背景色的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue引入高德地圖并觸發(fā)實現(xiàn)多個標點的示例詳解

    Vue引入高德地圖并觸發(fā)實現(xiàn)多個標點的示例詳解

    這篇文章主要介紹了Vue引入高德地圖并觸發(fā)實現(xiàn)多個標點,主要是在public下的index.html中引入地圖,引入組件設(shè)置寬高100%,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • vue系列之requireJs中引入vue-router的方法

    vue系列之requireJs中引入vue-router的方法

    這篇文章主要介紹了vue系列之requireJs中引入vue-router的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue如何根據(jù)角色獲取菜單動態(tài)添加路由

    Vue如何根據(jù)角色獲取菜單動態(tài)添加路由

    這篇文章主要介紹了Vue如何根據(jù)角色獲取菜單動態(tài)添加路由,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • vue接通后端api以及部署到服務(wù)器操作

    vue接通后端api以及部署到服務(wù)器操作

    這篇文章主要介紹了vue接通后端api以及部署到服務(wù)器操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論

林甸县| 肥东县| 黄陵县| 塔城市| 石河子市| 延庆县| 汉川市| SHOW| 铜梁县| 荃湾区| 蒙阴县| 图片| 布尔津县| 轮台县| 河北省| 东城区| 堆龙德庆县| 六安市| 兴国县| 洛浦县| 江孜县| 大足县| 德州市| 商都县| 朝阳县| 平陆县| 工布江达县| 密云县| 小金县| 潮安县| 长沙市| 大石桥市| 金塔县| 连山| 成都市| 延庆县| 巧家县| 高碑店市| 弋阳县| 顺昌县| 新郑市|