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

vue?echarts實現(xiàn)改變canvas長和寬自適應(yīng)

 更新時間:2022年04月01日 10:34:11   作者:ttt_tangyuan  
這篇文章主要介紹了vue?echarts實現(xiàn)改變canvas長和寬自適應(yīng)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

echarts改變canvas長寬自適應(yīng)

存放Echarts的DOM容器,如果給的高和寬是百分比,渲染的時候DOM容器的高和寬是按百分比給的,但是DOM容器下的子元素div和canvas高和寬是根據(jù)圖標內(nèi)容渲染。項目應(yīng)用的時候,底部會有一部分DOM容器和div的高度差,不美觀。

希望Echarts的canvas和DOM容器的高寬一致。

下面給出代碼

方法一:根據(jù)瀏覽器寬高為echarts容器賦寬高

<template>
  <div id="main"></div>
</template>
<script>
  import echarts from 'echarts'
  
  export default {
    name: "Chart",
    mounted() {
      var myChartContainer = document.getElementById('main')
	// 獲取自適應(yīng)的高度和寬度
      var resizeMyChartContainer = function() {
        myChartContainer.style.height = window.innerHeight * 0.65 + 'px';
        myChartContainer.style.width = window.innerWidth * 0.75 + 'px';
      };
	// 設(shè)置容器高和寬
      resizeMyChartContainer();
      var myChart = echarts.init(myChartContainer);
      let option = {};
      
      myChart.setOption(option);
	// 自適應(yīng)高和寬
      window.onresize = function () {
        resizeMyChartContainer();
        myChart.resize();
      }
    }
  }
</script>

這里的DOM容器下的div和canvas高和寬和DOM容器一樣了

echarts前端的源碼

錯誤1

document.getElementById('main').firstChild.firstChild.style.height = window.innerHeight * 0.55 + 'px'

如果強行獲取canvas元素,改變它的高度(上面的div和DOM高度都不變),會把echarts拉高,圖像也拉高了,比例不對。

錯誤2

var myChart = echarts.init(myChartContainer, {width:'800px',height:'400px'});

在初始化的時候傳入高和寬,此時DOM元素下的div和canvas的高和寬還是渲染出來的。傳入的數(shù)據(jù)限制了數(shù)據(jù)展示區(qū)域的高和寬。

方法二:根據(jù)echarts容器的父容器的寬高為其賦值

首先介紹js獲取元素的寬高的方法:

var dom = document.getElementsByClassName('sec')[0];
var w1 = dom.style.width; // 只能獲取到內(nèi)聯(lián)樣式的屬性值
var w2 = dom.currentStyle.width; // 雖然支持全部三種設(shè)置樣式的方式,但是只支持IE
var w3 = window.getComputedStyle(dom).width; // 支持IE、Chrome、Firefox的全部三種樣式
var w4 = dom.getBoundingClientRect().width; // 同樣能獲取及時的尺寸,支持IE、Chrome、Firefox,只是獲取到的是數(shù)值不帶單位
const resizeMyChartContainer = function() {
	// 無需再進行數(shù)值計算的,可直接拿帶單位的屬性
	const containerWidth = window.getComputedStyle(document.getElementsByClassName('app-main')[0]).width
	const containerHeight = window.getComputedStyle(document.getElementsByClassName('app-main')[0]).height
	// 需進行數(shù)值計算的,拿不帶單位的屬性
	const containerHeightWithoutUnit = document.getElementsByClassName('app-main')[0].getBoundingClientRect().height
	// 百分比計算 并加單位
	myChartContainer.style.height = containerHeightWithoutUnit * 0.65 + 'px'
	myChartContainer.style.width = containerWidth
}

echarts自適應(yīng)屏幕寬度自動改變大小

在vue組件中在mouted鉤子里先調(diào)用初始化echarts的方法,然后再添加window監(jiān)聽事件resize,讓window監(jiān)控屏幕大小變化,從而用定時器setTimeout每隔100毫秒執(zhí)行echart.resize()事件。

注意this的指向,在外面從新定義this=this指向,還有初始化resizeTimer為空

在這里插入圖片描述

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Vue3實現(xiàn)組件二次封裝的小技巧分享

    Vue3實現(xiàn)組件二次封裝的小技巧分享

    組件的二次封裝:保留組件已有的功能,需要重寫組件方法,當組件已有大量功能時候,則需要重寫很多重復(fù)代碼,且組件功能進行修改的時候,封裝的組件也需要對應(yīng)修改,從而造成許多開發(fā)和維護成本,本文給大家分享了Vue3實現(xiàn)組件二次封裝的小技巧,需要的朋友可以參考下
    2024-09-09
  • vue項目出現(xiàn)ERESOLVE could not resolve問題及解決

    vue項目出現(xiàn)ERESOLVE could not resolve問題及解決

    這篇文章主要介紹了vue項目出現(xiàn)ERESOLVE could not resolve問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue項目打包之后在本地運行的實現(xiàn)方法

    vue項目打包之后在本地運行的實現(xiàn)方法

    這篇文章主要介紹了vue項目打包之后在本地運行的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue實現(xiàn)頁面渲染時候執(zhí)行某需求的示例代碼

    vue實現(xiàn)頁面渲染時候執(zhí)行某需求的示例代碼

    本文主要介紹了vue實現(xiàn)頁面渲染時候執(zhí)行某需求,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • vue路由緩存的幾種實現(xiàn)方式小結(jié)

    vue路由緩存的幾種實現(xiàn)方式小結(jié)

    這篇文章主要介紹了vue路由緩存的幾種實現(xiàn)方式,結(jié)合實例形式詳細分析了vue.js路由緩存常見實現(xiàn)方式、使用技巧與操作注意事項,需要的朋友可以參考下
    2020-02-02
  • Vue.js實現(xiàn)動畫與過渡效果的示例代碼

    Vue.js實現(xiàn)動畫與過渡效果的示例代碼

    在現(xiàn)代前端開發(fā)中,用戶體驗至關(guān)重要,一個精美的動畫過渡不僅能提升界面的美觀性,還能讓用戶在使用時感受到流暢的交互體驗,在本文中,我們將深入探討如何在 Vue.js 中實現(xiàn)動畫與過渡效果,并提供示例代碼,需要的朋友可以參考下
    2024-10-10
  • vue如何實現(xiàn)動態(tài)加載腳本

    vue如何實現(xiàn)動態(tài)加載腳本

    這篇文章主要介紹了vue如何實現(xiàn)動態(tài)加載腳本,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • vue實現(xiàn)簡單的購物車小案例

    vue實現(xiàn)簡單的購物車小案例

    這篇文章主要為大家詳細介紹了vue實現(xiàn)簡單的購物車小案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 過濾器vue.filters的使用方法實現(xiàn)

    過濾器vue.filters的使用方法實現(xiàn)

    這篇文章主要介紹了過濾器vue.filters的使用方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Vue模板語法中數(shù)據(jù)綁定的實例代碼

    Vue模板語法中數(shù)據(jù)綁定的實例代碼

    這篇文章主要介紹了Vue模板語法中數(shù)據(jù)綁定的實例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05

最新評論

泰顺县| 小金县| 富源县| 拜泉县| 沂源县| 新田县| 太康县| 偃师市| 南汇区| 洞口县| 鄄城县| 靖江市| 轮台县| 介休市| 泰州市| 通州市| 喀什市| 上思县| 和顺县| 土默特左旗| 固阳县| 东辽县| 红安县| 新和县| 东乡族自治县| 林州市| 静宁县| 昌邑市| 孙吴县| 丹寨县| 兴国县| 仙桃市| 张家口市| 阿城市| 嘉定区| 泗阳县| 岐山县| 武鸣县| 宁远县| 柘城县| 长海县|