html5 - 使用echarts中的圖表 一個頁面導(dǎo)入了好幾個js圖表 實現(xiàn)echarts圖表隨著瀏覽器窗口變化而變化時出現(xiàn)了問題
問題描述
1.問題: 主要問題就是 因為頁面有很多個echarts圖表 同時 每個圖表要處理不同的數(shù)據(jù) 目前沒有采用任何模板和框架 所以 我在整個頁面html引入幾個js文件 每個js文件是一個echarts圖表 每個js文件用來處理不同的數(shù)據(jù) 我的html頁面要求響應(yīng)式 所以當(dāng)瀏覽器窗口大小發(fā)生變化的時候 需要每個圖表也自適應(yīng)變化大小目前 我采取的方式就是 在每個js文件里邊 當(dāng)畫出圖表的時候 利用監(jiān)聽窗口大小 來改變 echarts圖表大小 代碼如下:這段代碼在每個js文件中都寫了
onlineTimeChart.setOption(option) window.addEventListener('resize', function () {setTimeout(function () { onlineTimeChart.resize();}, 500) });
以上代碼 當(dāng)html頁面只有一個echarts圖表的時候 該圖表可以實現(xiàn)自適應(yīng) 然而 當(dāng)頁面引入其他js文件 也就是畫出更多的圖表的時候 就會出現(xiàn) 只有最后引入的那個js文件畫出的圖表才會自適應(yīng)
js引入順序如下:
<script src='http://m.lshqa.cn/wenda/lib/js/jquery.js'></script><script src='http://m.lshqa.cn/wenda/lib/js/echarts.js'></script><script src='http://m.lshqa.cn/wenda/script/internetAction.js'></script><script src='http://m.lshqa.cn/wenda/script/onlineTime.min.js'></script><script src='http://m.lshqa.cn/wenda/script/systemStyle.min.js'></script><script src='http://m.lshqa.cn/wenda/script/onlineCount.min.js'></script><script src='http://m.lshqa.cn/wenda/script/bwaLoad.min.js'></script> //只有這一個才會自適應(yīng)
2.總結(jié): 綜合以上 我想了很多原因 但是還是解決不了問題 沒有模板和框架 也忽略打包工具 希望有知道的可以給我解決一下 謝謝
問題解答
回答1:自己已解決
searchWordChart.setOption(option); window.addEventListener('resize', function () {setTimeout(function () { searchWordChart.resize();}, 500) });回答2:
可能是因為window的事件被覆蓋了、每次都是只保留了最后一個JS中的resize事件、可以考慮把他們的resize事件function內(nèi)部的代碼塊抽到一起
回答3:謝邀。如果你引入兩個代碼會出現(xiàn)下面這個問題。onlineTimeChart這個參數(shù)被多次覆蓋,這就是問題。解決方案就是IIFE形成一個閉包,避免變量污染。
onlineTimeChart.setOption(option)window.addEventListener('resize', function () { setTimeout(function () {onlineTimeChart.resize(); }, 500)});onlineTimeChart.setOption(option)window.addEventListener('resize', function () { setTimeout(function () {onlineTimeChart.resize(); }, 500)});;(function(){ //每個頁面的代碼都扔這里面})();//如下 ;(function(){var onlineTimeChart = 1;console.log(onlineTimeChart);})(); ;(function(){console.log(onlineTimeChart);//獲取不到onlineTimeChart })();
相關(guān)文章:
1. javascript - 關(guān)于apply()與call()的問題2. 安全性測試 - nodejs中如何防m(xù)ySQL注入3. java - spring boot 如何打包成asp.net core 那種獨立應(yīng)用?4. java - 在用戶不登錄的情況下,用戶如何添加保存到購物車?5. javascript - nginx反向代理靜態(tài)資源403錯誤?6. docker網(wǎng)絡(luò)端口映射,沒有方便點的操作方法么?7. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?8. MySQL 查詢疑問?9. 推薦好用mysql管理工具?for mac和pc10. javascript - 如何將函數(shù)計算出的內(nèi)容傳遞為變量
