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

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

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

瀏覽:86日期: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} (c1kjvbp%)' }, 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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲高清影视| 91免费精品国偷自产在线在线| 国产精品白浆| 国产精品视频一区二区三区 | 怡红院精品视频在线观看极品| 欧美sss在线视频| 欧美1区免费| 亚洲视频www| 亚洲欧美日韩国产| 日韩在线观看中文字幕| 日韩精品中文字幕吗一区二区 | 99日韩精品| 日韩中文字幕91| 日本成人中文字幕| 欧美激情五月| 在线天堂中文资源最新版| 91一区二区三区四区| 久久美女性网| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩在线成人| 精品一区二区三区中文字幕| 日韩中文在线电影| aⅴ色国产欧美| 日韩视频1区| 国产一区丝袜| 亚洲一级影院| 日韩黄色在线观看| 久久不卡国产精品一区二区| 日韩av专区| 亚洲精品一二三区区别| 91午夜精品| 欧美国产小视频| 视频一区中文| 亚洲v天堂v手机在线| 欧美1区2区3| 久久亚洲国产| 欧美精品影院| 亚洲1234区| 日韩综合小视频| 首页国产精品| 爽爽淫人综合网网站| 国产精品毛片久久久| 久久精品一区二区不卡| 日韩中文字幕无砖| 91视频一区| 亚洲日本欧美| 91麻豆国产自产在线观看亚洲| 在线一区免费观看| 精品亚洲a∨一区二区三区18| 免费av一区| 久久不见久久见免费视频7| 亚洲午夜精品久久久久久app| 欧美在线91| 婷婷亚洲综合| 免费日韩一区二区三区| 黄色成人91| 久久免费视频66| 亚洲欧美网站| 正在播放日韩精品| 欧美日韩1区| 日韩午夜av| 国产一区福利| 国产调教一区二区三区| 欧美日韩国产高清电影| 欧美国产极品| 亚洲一级淫片| 久久精品国语| 精品国产精品久久一区免费式 | 91精品91| 成人在线免费观看91| 午夜天堂精品久久久久| 136国产福利精品导航网址| 国产精品.xx视频.xxtv| 五月天久久久| 国产精品99一区二区三| 日韩成人精品一区二区三区 | 色黄视频在线观看| 久久精品超碰| 视频在线观看国产精品| 欧美日一区二区| 国产一区二区三区免费在线 | av高清不卡| 国产精品magnet| 亚洲图片久久| 午夜精品久久久久久久久久蜜桃| 国产探花在线精品一区二区| 久久香蕉精品| 91精品啪在线观看国产18| 国产精久久久| 青青草91久久久久久久久| 久久香蕉精品| 在线综合视频| 精品中文一区| 1024精品一区二区三区| 日韩精品不卡一区二区| 久久一区精品| 国产日韩一区二区三区在线 | 亚洲精品在线国产| 欧美日韩国产一区精品一区| 蜜臀国产一区| 色一区二区三区| 成人午夜网址| 成人午夜网址| 国产一区二区三区天码| 免费日韩一区二区三区| 国产精品一区二区三区av| 日韩国产在线观看一区| 亚洲精品一二| 美国三级日本三级久久99| 精品在线播放| 国产在线不卡| 欧美69视频| 黄色不卡一区| 激情婷婷综合| 亚洲永久字幕| 国产亚洲精品v| 欧美在线亚洲综合一区| 婷婷国产精品| 午夜免费一区| 不卡视频在线| 欧美日韩国产在线一区| 黄色成人在线网址| 日韩一级欧洲| 六月丁香综合| 美女国产一区| 中文字幕一区日韩精品| 亚洲一区二区三区中文字幕在线观看| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品日韩欧美一区| 亚洲最新av| 日韩福利视频导航| 国产精品白丝一区二区三区| 成人污污视频| 亚洲a在线视频| 最新国产拍偷乱拍精品| 亚洲综合另类| 亚洲欧美一级| 国产精品欧美在线观看| 免费亚洲婷婷| 日韩综合在线| 99久久久久| 亚洲欧美久久| 青草国产精品久久久久久| 你懂的亚洲视频| 日韩在线观看一区| 亚洲一区二区动漫| 日本国产一区| 精品久久在线| 好吊日精品视频| 香蕉久久一区| 久久精品五月| 免费黄色成人| 日本不卡在线视频| 精品国产aⅴ| 国产精品99一区二区| 噜噜噜躁狠狠躁狠狠精品视频| 日韩av成人高清| 成人国产精品一区二区免费麻豆| 欧美一区二区三区激情视频| 蜜桃久久久久久| 老鸭窝一区二区久久精品| 久久久精品午夜少妇| 视频一区二区国产| 久久国产精品美女| 国产二区精品| 国产三级一区| 激情婷婷久久| 国产乱码精品一区二区亚洲| 日韩欧美午夜| 免费在线观看一区二区三区| 欧美在线看片| 日韩免费小视频| 婷婷综合国产| 综合日韩av| 综合激情一区| se01亚洲视频 | 国产99在线| 久久最新视频| 欧美精品导航| 美女少妇全过程你懂的久久| 青草国产精品久久久久久| 久久久久一区| 国产日产精品_国产精品毛片| 国产一区久久| 欧美精品成人| 美女91精品| 日韩免费看片| 欧美日韩在线精品一区二区三区激情综合 | 99在线|亚洲一区二区| 国产精品麻豆成人av电影艾秋| 欧美天堂亚洲电影院在线观看| 国产精品美女午夜爽爽| 国产手机视频一区二区| 久久麻豆视频| 亚洲我射av| av亚洲免费| 91欧美国产| 国产欧美另类| 蜜桃久久av一区| 久久一级电影|