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

vue中echarts圖表大小適應(yīng)窗口大小且不需要刷新案例

 更新時間:2020年07月19日 10:44:45   作者:heartbeaty  
這篇文章主要介紹了vue中echarts圖表大小適應(yīng)窗口大小且不需要刷新案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

內(nèi)容如下:

// 基于準(zhǔn)備好的dom,初始化echarts實例
let myChart = this.$echarts.init(document.getElementById('myChart'))
//根據(jù)窗口的大小變動圖表 --- 重點
window.onresize = function(){
  myChart.resize();
  //myChart1.resize();  //若有多個圖表變動,可多寫
 
}

代碼如下:

mounted() {
  
 const that = this
   window.onresize = () => {// 根據(jù)窗口大小調(diào)整曲線大小
   let myChart = this.$echarts.init(document.getElementById('myChart'));
    myChart.resize();
   }
 },

補充知識:如何解決Vue項目中使用echarts,寬度變化導(dǎo)致圖不能resize問題

情景:

開發(fā)PC端管理系統(tǒng),項目左側(cè)目錄可收縮,右側(cè)是對應(yīng)的頁面,右側(cè)頁面里面包含了echarts開發(fā)的幾個折線圖,如圖:

當(dāng)左側(cè)目錄展開的時候,會把右側(cè)頁面壓縮,右側(cè)頁面的echarts折線圖寬度就會發(fā)生改變,因為項目考慮到適配大屏的問題,所以,右側(cè)兩個echarts使用的都是百分比寬度,左側(cè)菜單展開后的樣子如圖:

會導(dǎo)致echarts折線圖超出畫布,所以為了解決這個問題,

第一個想法是:

通過js邏輯判斷左側(cè)菜單是否展開來動態(tài)改變echarts折線圖的寬度,結(jié)果是 沒有用;

第二個想法是:

通過動態(tài)判斷左側(cè)菜單是否撐開,然后在右側(cè)文件mounted生命周期里寫一個無限定時器,每間隔500毫秒動態(tài)執(zhí)行下,初始化echarts折線圖的方法,結(jié)果:也沒用

最終百度了一波,通過網(wǎng)上其他大佬寫的博客,找到了解決方法:

劃重點

1.引入 element-resize-detector依賴

2.新建 chart.resize.js 文件,添加下面代碼

import echarts from 'echarts';
import Vue from 'vue';
import elementResizeDetectorMaker from "element-resize-detector"

export var version = '0.0.1';
var compatible = (/^2\./).test(Vue.version);
if (!compatible) {
  Vue.util.warn('vue echarts resize directive ' + version + ' only supports Vue 2.x, and does not support Vue ' + Vue.version);
}
let HANDLER = "_vue_echarts_resize_handler"

function bind(el) {
  unbind(el);
  el[HANDLER] = function () {
    let chart = echarts.getInstanceByDom(el);
    if (!chart) {
      return;
    }
    chart.resize();
  }
  //監(jiān)聽window窗體變化,更新echarts大小
  //window.addEventListener("resize", el[HANDLER])
  //監(jiān)聽綁定的div大小變化,更新echarts大小
  elementResizeDetectorMaker().listenTo(el,el[HANDLER])
  
}
function unbind(el) {
  //window.removeEventListener("resize", el[HANDLER]);
  elementResizeDetectorMaker().removeListener(el,el[HANDLER])
  delete el[HANDLER];
}
var directive = {
  bind: bind,
  unbind: unbind
};
Vue.directive("on-echart-resize", directive)

然后需要對應(yīng)的在 echarts 圖 上綁定一個 v-on-echart-resize

不綁定 v-on-echart-resize ,不起效果 ,親測

<template>
 <div id="leftEchartsLine" ref="leftEchartsLine" v-on-echart-resize></div>
</template>

v-on-echart-resize

這個是新增的 ,之前沒有

引入

import elementResizeDetectorMaker from "element-resize-detector";

import "./chart.resize";

然后在 mounted 寫

 mounted() {
  let erd = elementResizeDetectorMaker();
  let that = this;
  erd.listenTo(document.getElementById("leftEchartsLine"), (element) => {
   let width = element.offsetWidth;
   let height = element.offsetHeight;
   that.$nextTick(() => {
    //使echarts尺寸重置
    that.echarts.init(document.getElementById("leftEchartsLine")).resize();
   });
  });
 },

改完后的樣子:

這樣就能解決 echarts 折線圖,寬度變化 ,導(dǎo)致的圖不能resize問題咯~~~

以上這篇vue中echarts圖表大小適應(yīng)窗口大小且不需要刷新案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于vue實現(xiàn)8小時帶刻度的時間軸根據(jù)當(dāng)前時間實時定位功能

    基于vue實現(xiàn)8小時帶刻度的時間軸根據(jù)當(dāng)前時間實時定位功能

    這篇文章主要介紹了基于vue實現(xiàn)8小時帶刻度的時間軸根據(jù)當(dāng)前時間實時定位功能,開始時間、結(jié)束時間可配置,根據(jù)當(dāng)前時間初始化位置,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Vue 多選框所選數(shù)量動態(tài)變換Box的高度

    Vue 多選框所選數(shù)量動態(tài)變換Box的高度

    在Web開發(fā)中,使用Vue.js框架可以通過ref屬性、v-model指令和計算屬性等特性實現(xiàn)元素高度的動態(tài)調(diào)整,文章詳細(xì)介紹了如何利用Vue的功能根據(jù)多選框的選擇數(shù)量動態(tài)改變元素的高度,并通過多個示例展示其應(yīng)用
    2024-09-09
  • Vue動態(tài)實現(xiàn)評分效果

    Vue動態(tài)實現(xiàn)評分效果

    這篇文章主要為大家詳細(xì)介紹了Vue動態(tài)實現(xiàn)評分效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 解決vue 表格table列求和的問題

    解決vue 表格table列求和的問題

    今天小編就為大家分享一篇解決vue 表格table列求和的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue獲取表單數(shù)據(jù)的多種方式

    Vue獲取表單數(shù)據(jù)的多種方式

    這篇文章主要給大家介紹了關(guān)于Vue獲取表單數(shù)據(jù)的多種方式,在Vue中我們通常使用v-model命令綁定表單的屬性值(通常是value),獲取到的屬性值就是表單數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • vue3前端獲取文件的絕對路徑問題解決

    vue3前端獲取文件的絕對路徑問題解決

    這篇文章主要給大家介紹了關(guān)于vue3前端獲取文件的絕對路徑問題解決的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • vue-cli history模式實現(xiàn)tomcat部署報404的解決方式

    vue-cli history模式實現(xiàn)tomcat部署報404的解決方式

    這篇文章主要介紹了vue-cli history模式實現(xiàn)tomcat部署報404的解決方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Vue3中的Refs和Ref詳情

    Vue3中的Refs和Ref詳情

    這篇文章主要介紹了Vue3中的Refs和Ref,文章圍繞Vue3中的Refs和Ref得相關(guān)資料應(yīng)用舉例煩人方式展開詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • vue使用echarts實現(xiàn)柱狀圖動態(tài)排序效果

    vue使用echarts實現(xiàn)柱狀圖動態(tài)排序效果

    echarts在前端開發(fā)中實屬必不可缺的大數(shù)據(jù)可視化工具,這篇文章主要為大家詳細(xì)介紹了vue如何使用echarts實現(xiàn)柱狀圖動態(tài)排序效果,感興趣的可以了解下
    2023-10-10
  • vue3數(shù)組或?qū)ο筚x值不更新解決方法示例

    vue3數(shù)組或?qū)ο筚x值不更新解決方法示例

    這篇文章主要為大家介紹了vue3數(shù)組或?qū)ο筚x值不更新解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

平遥县| 乐至县| 兴业县| 大邑县| 东光县| 顺平县| 红原县| 西城区| 高唐县| 门源| 鹤山市| 离岛区| 九江市| 巧家县| 富阳市| 洪湖市| 富裕县| 肃宁县| 皮山县| 丰台区| 屏山县| 都江堰市| 华阴市| 博罗县| 邛崃市| 句容市| 湖口县| 故城县| 红桥区| 德庆县| 贡山| 洞口县| 栖霞市| 彰化市| 保山市| 墨脱县| 浦县| 聊城市| 太仆寺旗| 凤凰县| 白玉县|