成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:63日期: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} (oai2koc%)' }, 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); // 處理瀏覽器窗口大小變化觸發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); // 處理瀏覽器窗口大小變化觸發resize window.addEventListener('resize', this.resizeEchart, true);

關于MutationObserver的使用 參考

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

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

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

標簽: Vue
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色综合久久久久综合99| voyeur盗摄精品| 91在线免费视频观看| 91精品啪在线观看国产60岁| 毛片基地黄久久久久久天堂| 色综合久久久久综合99| 亚洲高清免费观看高清完整版在线观看 | 国产精品主播| 一区二区三区在线观看欧美| 亚洲美女黄色| 亚洲一区二区三区精品在线| 亚洲一区网站| 日韩国产欧美三级| 日本韩国一区二区三区视频| 日本不卡一区二区三区| 欧美性猛交一区二区三区精品| 久久99国内精品| 欧美一区二区二区| 成人免费不卡视频| 国产午夜精品一区二区三区嫩草 | 国产精品一卡二卡| 欧美精品久久99久久在免费线| 久久91精品久久久久久秒播| 欧美日韩成人综合在线一区二区| 国内精品伊人久久久久av影院 | 国产精品久久久久四虎| 亚洲国产日韩欧美一区二区三区| 一区二区三区日本| 色狠狠桃花综合| 国产乱码精品一品二品| 精品国产污污免费网站入口| 色综合中文字幕| 亚洲欧美偷拍另类a∨色屁股| 亚洲一区三区视频在线观看 | 黑丝一区二区三区| 亚洲伦理在线免费看| 国产三级精品在线不卡| 日本免费新一区视频| 欧美色爱综合网| 处破女av一区二区| 国产精品进线69影院| 亚洲欧美久久久| 欧美亚洲另类激情小说| 欧美午夜不卡| 国产精品成人一区二区三区夜夜夜| 在线播放一区| 丝袜脚交一区二区| 91精品免费观看| 91在线精品秘密一区二区| 国产精品久久久久久久久果冻传媒 | 久久久久se| 精品一区二区三区欧美| 精品久久一区二区| 亚洲精品系列| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美美女一区二区三区| 欧美午夜不卡影院在线观看完整版免费| 一区二区视频在线| 欧美人狂配大交3d怪物一区| 成人黄色综合网站| 一区二区三区免费看视频| 在线精品视频免费观看| 成人免费毛片a| 亚洲精品中文字幕乱码三区| 欧美性色综合网| 欧美成人在线免费观看| 午夜久久电影网| 欧美不卡在线视频| 在线综合亚洲| 国产成人夜色高潮福利影视| 中文字幕佐山爱一区二区免费| 在线观看免费成人| 女主播福利一区| 日本亚洲免费观看| 久久精品亚洲精品国产欧美 | 欧美国产精品中文字幕| 国产亚洲福利| 国产麻豆精品视频| 国产精品国产三级国产普通话99 | 在线视频精品一区| 国产高清在线精品| 一区二区三区四区乱视频| 制服.丝袜.亚洲.另类.中文| 韩日在线一区| 国产精品亚洲а∨天堂免在线| 亚洲欧洲日产国产综合网| 欧美视频日韩视频在线观看| 欧美涩涩视频| 另类小说视频一区二区| 日本一区二区高清| 欧美男男青年gay1069videost| 好看的日韩av电影| 国产精品一二三区在线| 亚洲一二三区不卡| 久久青草欧美一区二区三区| 日本韩国精品一区二区在线观看| 国产精品theporn| 久久se精品一区精品二区| 国产精品久久久久久久久动漫 | 国产精品网友自拍| 欧美午夜片在线看| 亚洲成色精品| 高清不卡一区二区在线| 午夜欧美2019年伦理| 欧美国产综合一区二区| 欧美日韩成人综合在线一区二区| 一本色道久久| 99久久久久免费精品国产 | 亚洲制服少妇| 91污在线观看| 久久成人av少妇免费| 亚洲免费观看高清完整| 精品国产免费一区二区三区四区 | 欧美老女人第四色| 国产精品一区免费观看| 91麻豆国产在线观看| 麻豆精品国产传媒mv男同| 亚洲视频每日更新| 久久久精品蜜桃| 欧美电影一区二区| 午夜在线观看免费一区| 欧美精品麻豆| 国产v综合v亚洲欧| 久久99精品国产麻豆不卡| 亚洲18影院在线观看| 中文字幕一区不卡| 久久免费精品国产久精品久久久久| 欧美视频在线播放| 久久www成人_看片免费不卡| 伊人久久成人| 欧美日韩大片一区二区三区| 成人黄色小视频| 国产综合色精品一区二区三区| 午夜久久久久久| 亚洲精品欧美激情| 日本一区二区三区四区| 日韩精品一区二区三区四区| 精品视频免费看| 色婷婷亚洲精品| 亚洲一区二区三区色| 99精品视频免费| 欧美性久久久| 欧美不卡福利| 91伊人久久大香线蕉| 懂色av中文一区二区三区| 久久不见久久见免费视频7| 午夜av一区二区| 亚洲国产综合在线| 一区二区三区美女| 亚洲欧美偷拍卡通变态| 国产精品三级视频| 国产欧美日韩精品一区| 久久伊人中文字幕| 精品国产免费视频| 亚洲精品在线三区| 欧美成va人片在线观看| 日韩欧美一级在线播放| 在线不卡欧美精品一区二区三区| 欧美日韩精品系列| 欧美日韩国产精品成人| 欧美日韩国产一级| 欧美日韩精品综合在线| 欧美日韩在线播放一区| 欧美体内she精高潮| 精品视频色一区| 欧美写真视频网站| 欧美日韩三级在线| 91麻豆精品国产91久久久 | 精品一区二区三区在线播放视频| 日本aⅴ免费视频一区二区三区 | 亚洲一级影院| 国产真实久久| 狠狠爱www人成狠狠爱综合网| 欧美日本国产精品| 欧美日韩免费高清| 激情视频一区二区| 亚洲欧洲精品一区二区| 在线天堂一区av电影| 国产精品日本| 性欧美长视频| 色婷婷av一区二区| 91久久精品网| 欧美日韩一区二区三区视频| 欧美日韩成人激情| 欧美一区日本一区韩国一区| 日韩欧美黄色影院| 国产午夜精品久久久久久久 | 欧美一区永久视频免费观看| 欧美一级搡bbbb搡bbbb| 日韩精品在线一区二区| 久久中文娱乐网| 国产精品久久久久久久第一福利 | 日本欧美一区二区在线观看| 久久国产欧美日韩精品| 国产伦理精品不卡| 成人一区二区三区| 欧美fxxxxxx另类| 亚洲激精日韩激精欧美精品| 国产欧美日韩亚洲| 色国产精品一区在线观看|