日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

關于vue 結合原生js 解決echarts resize問題

瀏覽:84日期:2022-12-28 13:02:18

解決頁面echarts 圖表 resize問題

關于vue 結合原生js 解決echarts resize問題

左側的菜單欄模塊是可以收縮的,點擊左上角的 icon 可以收縮,但是點擊左上角的icon后,右側的echarts圖并未進行對應的收縮,使用 element-resize-detector 插件能夠解決問題(如何解決Vue項目中使用echarts,寬度變化導致圖不能resize問題)但是會有點卡頓,所以采用原生的方法來處理,再結合windows 自帶的原生 resize 事件處理 瀏覽器寬度高度變化,可以不使用插件來處理問題了。

<template> <div ref='leftEchartPie' ></div></template><script>export default { props: { leftPieData: { type: Object, default: {} } }, data() { return { myChart: null, option: null, observe: null, optionData: [] }; }, watch: { leftPieData: { deep: true, handler(leftPieData) { if (leftPieData) { this.initChart(leftPieData); } } } }, mounted() { const option = { title: { zlevel: 0, text: null, rich: { value: { color: '#3F495A', fontSize: 14, lineHeight: 16 }, name: { color: '#3F495A', fontSize: 14, lineHeight: 16 } }, top: 'center', left: '19.3%', textAlign: 'center', textStyle: { rich: { value: { color: '#3F495A', fontSize: 14, lineHeight: 16 }, name: { fontSize: 16, color: '#3F495A', lineHeight: 30 } } } }, tooltip: { show: true, trigger: 'item', formatter: '{a} <br/>{b}: {c} (ey2bymb%)' }, legend: {}, series: [ { name: 'Security Status', type: 'pie', center: ['20%', '50%'], radius: ['80%', '45%'], itemStyle: { borderWidth: 6, borderColor: '#fff' }, hoverAnimation: false, avoidLabelOverlap: false, label: { show: false, position: 'center' }, emphasis: { label: { show: false, fontSize: '30', fontWeight: 'bold' } }, labelLine: { show: false }, data: [] } ] }; this.option = option; var dom = document.getElementById('leftEchartPie'); var myChart = this.echarts.init(dom); this.myChart = myChart;// 使用瀏覽器原生的MutationObserver來處理 const observer = new MutationObserver(() => { setTimeout(this.myChart.resize, 201); }); const config = { attributes: true, childList: true, subtree: false }; this.observe = observer; observer.observe(document.getElementsByClassName('spoc-menu')[0], config); // 處理瀏覽器窗口大小變化觸發(fā)resize window.addEventListener('resize', this.resizeEchart, true); }, beforeDestroy() { this.observe.dis; window.removeEventListener('resize', this.resizeEchart, true); }, methods: { resizeEchart() { this.myChart.resize(); }, initChart(leftPieData) { this.option.text = [ '{name|Total}', '{value|' + leftPieData.totalNum + '}' ].join('n'); this.option.legend.data = [ `Very High Risk`, `High Risk`, `Medium Risk`, `Low Risk`, `Very Low Risk` ]; this.option.series[0].data = [ { value: this.leftPieData.veryHighRiskNum, name: `Very High Risk`, itemStyle: { color: '#FF4D4F' } }, { value: this.leftPieData.highRiskNum, name: `High Risk`, itemStyle: { color: '#FA9314' } }, { value: this.leftPieData.mediumRiskNum, name: `Medium Risk`, itemStyle: { color: '#FACB14' } }, { value: this.leftPieData.lowRiskNum, name: `Low Risk`, itemStyle: { color: '#4ED6CC' } }, { value: this.leftPieData.veryLowNum, name: `Very Low Risk`, itemStyle: { color: '#2BD374' } } ]; this.optionData = this.option.series[0].data; const optionData = this.optionData; this.option.legend = { textStyle: { fontSize: 14, color: '#3F495A' }, orient: 'vertical', left: '60%', itemGap: 30, // 字高 top: 'middle', icon: 'circle', itemHeight: 10, //改變圓圈大小 // data: [], formatter(params) { if (optionData.length) { switch (params) { case 'Very High Risk': return params + ' ' + optionData[0].value; break; case 'High Risk': return params + ' ' + optionData[1].value; break; case 'Medium Risk': return params + ' ' + optionData[2].value; break; case 'Low Risk': return params + ' ' + optionData[3].value; break; case 'Very Low Risk': return params + ' ' + optionData[4].value; break; default: return ''; } } } }; // 繪制圖表 this.myChart.setOption(this.option); } }};</script><style>#leftEchartPie { width: 100%; height: calc(100% - 60px);}</style>

核心代碼

// 使用瀏覽器原生的MutationObserver來處理 const observer = new MutationObserver(() => { setTimeout(this.myChart.resize, 201); }); const config = { attributes: true, childList: true, subtree: false }; this.observe = observer; observer.observe(document.getElementsByClassName('spoc-menu')[0], config); // 處理瀏覽器窗口大小變化觸發(fā)resize window.addEventListener('resize', this.resizeEchart, true);

關于MutationObserver的使用 參考

最后注意需要beforeDestroy 里面銷毀掉 監(jiān)聽的時間和 MutationObserver 監(jiān)聽的事件,避免事件一直在頁面里面,消耗內存。

最后開發(fā)完后,對比了下和之前使用的插件,原生js處理的體驗比插件反應快,插件給人的感覺盾一點

ok 這就是關于 vue 結合原生js 解決echarts resize問題 的開發(fā)心得啦 ~希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲一区二区三区四区五区午夜| 日韩av中文字幕一区二区三区| 美女视频免费精品| 国产精品一区二区三区美女| 久久av网址| 日本免费一区二区三区四区| 久久久久久久久久久妇女| 欧美福利一区| 在线视频亚洲欧美中文| 久久国内精品视频| 四虎国产精品免费观看| 久久一级电影| 中文字幕av亚洲精品一部二部| 日韩精品一区二区三区中文 | 国产精品亚洲欧美日韩一区在线| 欧美精品二区| 日本久久成人网| 久久亚洲国产精品一区二区| 日韩精品国产精品| 欧美久久天堂| 蜜臀久久99精品久久久久宅男| 国产精品巨作av| 久久精品不卡| 欧美在线91| 欧美sss在线视频| 国产亚洲精品自拍| 国产精品久久乐| 久久精品一区二区不卡| 免费人成在线不卡| 久久精品伊人| 激情综合网站| 国产精品主播| 激情综合自拍| 国产亚洲精aa在线看| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 91麻豆精品激情在线观看最新| 精品欧美视频| 亚洲欧美日韩国产一区| 欧美极品一区二区三区| 亚洲精品网址| 麻豆国产91在线播放| 亚洲二区三区不卡| 国产精品一级| 99国产精品久久久久久久成人热| 日欧美一区二区| 蜜桃视频在线网站| 色8久久久久| 精精国产xxxx视频在线野外| 日韩欧美中文字幕一区二区三区| 午夜精品成人av| 91精品丝袜国产高跟在线| av高清不卡| 日韩和欧美一区二区| 91av亚洲| 国产精品丝袜在线播放| 日韩一区二区久久| 国产一二在线播放| 日本亚洲最大的色成网站www | 国产精品99一区二区| 国产精品一区毛片| 亚洲综合二区| 日韩天堂在线| 国产伦一区二区三区| 日韩在线卡一卡二| bbw在线视频| 欧美日韩亚洲三区| 国产精品亚洲综合久久| 亚洲综合精品四区| 色天使综合视频| 国产精品毛片视频| 一区二区三区国产在线| av亚洲一区二区三区| 国产精品啊啊啊| 中文字幕中文字幕精品| 久久激情中文| 国产精品麻豆久久| 久久精品资源| 国产欧美亚洲精品a| 一区二区三区国产在线| 不卡在线一区| 日韩福利一区| 久久精品一区二区国产| 欧美片第1页综合| 亚洲一区二区三区高清| 亚洲国内欧美| 久久精品动漫| 日韩免费福利视频| 日本久久综合| 精品国产乱码久久久| 国产精品一区三区在线观看| 日韩中文字幕| 亚洲精品在线国产| 亚洲人成亚洲精品| 蜜臀久久99精品久久久久久9| 婷婷激情图片久久| 色88888久久久久久影院| a天堂资源在线| 成人片免费看| 精品一区二区三区中文字幕| 国产精品任我爽爆在线播放| 欧美另类中文字幕| 日韩精品一级| 日本免费一区二区视频| 亚洲精品动态| 日韩二区在线观看| 久久国产欧美日韩精品| 欧美亚洲网站| 国产探花在线精品| 久久国产三级精品| 国产精品国产三级在线观看| 国产精品2区| 国产精品qvod| 国产一区三区在线播放| 国产精成人品2018| 麻豆成人在线观看| 97精品视频在线看| 久久久精品网| 一区二区视频欧美| 日韩中文字幕91| 综合激情五月婷婷| 欧美日韩午夜| 精品国产网站| 92国产精品| 欧美日一区二区| 亚洲激情二区| 一二三区精品| 日韩国产欧美一区二区三区| 国产亚洲高清一区| 另类综合日韩欧美亚洲| 日韩国产专区| 蜜桃tv一区二区三区| 国产视频一区欧美| 日本v片在线高清不卡在线观看| 国产麻豆一区| 欧美精品高清| 亚洲少妇自拍| 欧美亚洲三区| 中文在线资源| 亚洲深夜福利| 国产亚洲一区| sm捆绑调教国产免费网站在线观看 | 日本精品影院| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲美女91| 精品亚洲成人| 在线精品小视频| 日韩国产高清在线| 日韩1区在线| 日韩视频一区| 亚洲精品成a人ⅴ香蕉片| 麻豆91精品视频| 黄色日韩精品| 国产精品日本一区二区不卡视频| 欧美日韩精品免费观看视完整| 欧美大黑bbbbbbbbb在线| 日韩国产在线观看| 免费福利视频一区二区三区| 在线观看亚洲精品福利片| 欧美国产免费| 亚洲激情五月| 久久99青青| 日韩视频不卡| 久久91视频| 日av在线不卡| 国产精品xx| 免费视频最近日韩| 麻豆视频在线观看免费网站黄 | 日韩精品一二三| 国产专区精品| 亚洲精品成人一区| 日韩在线视频精品| 日韩成人在线看| 在线日韩一区| 国产精品极品在线观看| 99国产成+人+综合+亚洲欧美| 国产精品伊人| 最新亚洲一区| 国产成人精品一区二区免费看京| 国产精品美女久久久浪潮软件| 欧美精品aa| 国产视频一区三区| 欧美精品91| 亚洲日产国产精品| 欧美一区三区| 国产在线一区不卡| 午夜电影一区| 红桃视频欧美| 成午夜精品一区二区三区软件| 综合激情一区| 欧美va天堂在线| 国产精品精品国产一区二区| 日韩高清国产一区在线| 偷拍欧美精品| 日本一二区不卡| 91p九色成人| 国产免费成人| 国产精品专区免费| 欧美天堂一区二区| 亚洲精品综合| 亚洲综合丁香|