問題所在
顯示不全的圖形
顯示全的圖形
解決此問題本人暫時試過四種方法
1、既簡單又粗暴的方法:直接給圖形所在的div設置一個固定寬度;
2、利用v-if:用v-if顯示頁面首次進入頁面組件之間的傳參未能完成;
例如:
3、通過獲取父元素的寬度,將其復制給子元素,
代碼例如:
<div class="echarts"> <div id="myChart" :style="{width: '100%',height: '150px'}"></div> </div>
methods: { setMychart () { //jq寫法 //獲取父元素 var echarts = $('.echarts'); //獲取父元素寬高 var echartsWidth = echarts.outerWidth(true); var echartsHeight = echarts.outerHeight(true); //獲取圖表元素 var myChart = $('#myChart'); //將父元素寬高賦值給圖表 myChart.css('width', myChart); myChart.css('height', myChart); //原生js寫法 // //獲取父元素 // var echarts = document.querySelector('.echarts'); // //獲取父元素寬高 // var echartsWidth = this.getStyle(echarts,'width'); // var echartsHeight = this.getStyle(echarts,'height'); // //獲取圖表元素 // var myChart = document.querySelector('#myChart'); // //將父元素寬高賦值給圖表 // myChart.style.width = echartsWidth; // myChart.style.height = echartsHeight; }, //這是一個封裝好的方法,兼容IE,第一個參數,element,第二個屬性,css樣式 getStyle (obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; } else { return document.defaultView.getComputedStyle(obj,null)[attr]; } } }
4、v-show控制組件顯示,這里我們利用控制v-show的變量;首先我們把這個變量傳進子組件中來監聽這個變量的變化,在給一個判斷如果當這個變量等於v-show所控制的當前組件的值時觸發resize()這個方法;