代碼:
成都創新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于成都做網站、網站制作、秦安網絡推廣、微信小程序開發、秦安網絡營銷、秦安企業策劃、秦安品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創新互聯公司為所有大學生創業者提供秦安建站搭建服務,24小時服務熱線:18980820575,官方網址:vcdvsql.cn
問題再現步驟:
第一步:? 打開頁面,能夠正常顯示圖表
第二步:? 點擊隱藏按鈕,讓box隱藏掉,如果此時直接點擊顯示按鈕,圖表依舊可以
?????????????正常顯示,沒毛病。重點是,如果此時點擊完了隱藏,不點擊顯示,而是拖動窗口大小
????????? ? ?再來點擊顯示按鈕,就會發現圖表顯示不出來,為什么會顯示不出來了?
分析產生的原因:
1 點擊隱藏按鈕以后的,此時還沒有拖到窗口大小
會發現box的確是隱藏了,display:none;
canvas標簽內的行內樣式有width:623px,height:500px;
2 此時開始拖動窗口大小,改變窗口的大小,再來觀察
會發發現此時
canvas標簽內的行內樣式變成了 width:0px, height:100px;
這就是為什么此時再來點擊顯示按鈕時,圖表顯示不出來的問題所在,因為此時畫布的width已經為0,
自然而然就顯示不出來,如果此時再拖動窗口大小,圖表就又會顯示出來。
如何解決該問題了?
解決思路就是在點擊顯示按鈕以后,觸發窗口大小改變事件就可以完成
出現該問題的關鍵還在于一開始我們并沒有給bar元素設置width屬性
如果把bar設置成width:100%,height:100%;就會出現如下問題:
width和height都變成了100px了
如果一開就給bar元素就設置固定寬度和高度,就不會文章所指的問題了
但有時我們需要做到自適應不得不去設置100%,這就是文中所會出現的問題了。
完成測試代碼:
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title></title> <style?type="text/css"> *{ margin:?0; padding:?0; } .box{ height:?500px; background-color:?#00B83F; } #bar{ height:?100%; } .btn?{ position:?fixed; bottom:?0; left:?0; right:?0; height:?80px; background-color:?rgba(0,?0,?0,?.5); z-index:?999; } </style> </head> <body> <div?class="box"> <div?id="bar"></div> </div> <div?class="btn"> <button>隱藏</button> <button>顯示</button> </div> </body> <script?src="js/jquery.js"?type="text/javascript"?charset="utf-8"></script> <script?src="js/echarts.min.js"?type="text/javascript"?charset="utf-8"></script> <script?type="text/javascript"> var?myChart?=?null; initChart(); function?initChart()?{ console.log('initChart'); if(!myChart){ myChart?=?echarts.init(document.getElementById('bar')); } //?設置參數配置 var?option?=?{ title:?{ text:?'柱狀圖' }, tooltip:?{}, legend:?{ data:?['模擬數據'] }, xAxis:?{ data:?['數學',?'語文',?'英語',?'體育',?'高數',?'美術',?'音樂',?'思想',?'aa',?'bb',?'cc'] }, yAxis:?{ splitLine:?{ show:?false?//?是否顯示y軸的分割線?默認是true } }, series:?{ type:?'bar',?//?表示的是柱狀圖 data:?[98,?80,?54,?60,?64,?89,?76,?88,?99,?55,?66], name:?'模擬數據', //barWidth:?30, } }; //?顯示圖表 myChart.setOption(option); $(window).resize(myChart.resize); } //?隱藏 $('button:eq(0)').click(function(){ $('.box').hide(); }); //?顯示 $('button:eq(1)').click(function(){ $('.box').show(); $(window).trigger('resize'); }); </script> </html>
本文標題:隱藏元素之后改變窗體大小時echarts顯示異常問題
網址分享:http://vcdvsql.cn/article0/gdggoo.html
成都網站建設公司_創新互聯,為您提供小程序開發、品牌網站建設、網站建設、、外貿建站、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯