最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

echarts圖表設(shè)置寬度100%結(jié)果為100px的解決辦法

 更新時間:2022年12月13日 08:59:49   作者:cxy-Study  
在開發(fā)一個前端項(xiàng)目時需要用到Element-ui的el-tabs組件和Echart開源庫,當(dāng)兩者嵌套使用時,我給Echart中的圖表寬度設(shè)置為了100%,但是實(shí)際的寬度卻只有100px,這篇文章主要給大家介紹了關(guān)于echarts圖表設(shè)置寬度100%結(jié)果為100px的解決辦法,需要的朋友可以參考下

當(dāng)外層div盒子設(shè)置寬度為100%時,可echarts渲染出來寬度只有100px,這種情況大多數(shù)echarts所在的div設(shè)置了display:none,獲取不到外部盒子的寬度。

這里可以通過echarts源碼獲取寬度的行為來解釋

究其原因就是出現(xiàn)在了圖表設(shè)置了display:none屬性上(屬性含義:不為被隱藏的對象保留其物理空間,關(guān)閉元素的顯示,并且所有后代元素不顯示)

我們通過瀏覽器打斷點(diǎn)可以看清楚echarts在計(jì)算圖表寬度這部分的邏輯$("#chart").css("width",$("#chart").width());,("#chart")指的是當(dāng)前繪制圖表的div,獲取當(dāng)前元素的寬度后把固定寬度賦值給圖表。

但是為什么我們寬度設(shè)置了100%,結(jié)果變?yōu)榱?00px? 這里上源碼可以解釋:

源碼解讀:當(dāng)echarts繪制表格(也就是執(zhí)行init方法)計(jì)算寬度的時候,由于初始化圖表時外層div盒子的屬性為display:none,所以無法獲取到盒子的clientWidth(可視化寬度),而parseInt(stl.width,10)將寬度100%轉(zhuǎn)換成了100(這里的stl.width,就是外層的div的樣式中的width屬性,因?yàn)槲覀兂跏紩r設(shè)置了100%,所以這里可以獲取到),所以計(jì)算出的圖表寬度為100px。

(源碼這里沒有獲取到clientWidth(可視化寬度,因?yàn)閐isplay:none屬性,無法獲取到,就會將設(shè)置的width:100%轉(zhuǎn)換稱100px))

解決方法:外部div盒子必須要在init初始化前就已經(jīng)存在于dom樹中(也就是已經(jīng)掛載)。

不要 在display:none的情況下(包括v-show、v-if后面的邏輯值是false時),一上來就初始化(init)echart。只要一初始化,就會執(zhí)行源碼計(jì)算出echart的寬度。

如何確保dom已經(jīng)存在再去初始化呢:這里可以監(jiān)視display屬性(一般在項(xiàng)目中是通過v-if或者v-show,所以這里監(jiān)視的是掌控盒子是否顯示的變量 ),在監(jiān)視中(watch),要配合nextTick方法使用,這樣才能完全確保初始化之前,外部盒子已經(jīng)存在于dom樹中。(一般初始化過程是寫在nextTick中)

附:echarts寬度如何設(shè)為百分比

var width = $("#tabitem2").width()*0.45;
$("#mainPay").css("width", width);
$("#mainDetail").css("width", width);
$("#main").css("width", width);
$("#mainItem").css("width", width);
$("#mainBehavior").css("width", width);
$("#mainBehaviorPay").css("width", width);
$("#mainDepartment").css("width", width);
$("#mainDoctor").css("width", width);

var myChartPay = echarts.init(document.getElementById('mainPay'));
var myChartDetail = echarts.init(document.getElementById('mainDetail'));
var myChartDepartment = echarts.init(document.getElementById('mainDepartment'));
var myChart = echarts.init(document.getElementById('main'));
var myChartItem = echarts.init(document.getElementById('mainItem'));
var myChartDoctor = echarts.init(document.getElementById('mainDoctor'));
var myChartBehavior = echarts.init(document.getElementById('mainBehavior'));
var myChartBehaviorPay = echarts.init(document.getElementById('mainBehaviorPay'));

說明:

這里 有個 div class=tabitems ,將寬度設(shè)置為 0.45倍的它。

然后對八個圖表設(shè)置寬度為width。因?yàn)?tabitem2的寬度是動態(tài)的,所以每次隨著屏幕寬度改變,都會重新計(jì)算這個寬度然后賦值。

總結(jié)

到此這篇關(guān)于echarts圖表設(shè)置寬度100%結(jié)果為100px的文章就介紹到這了,更多相關(guān)echarts圖表寬度100%為100px內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • TypeScript泛型工作原理詳解

    TypeScript泛型工作原理詳解

    TypeScript 憑借其強(qiáng)大的類型系統(tǒng),提供了一項(xiàng)稱為泛型的功能,它使開發(fā)人員能夠編寫可重用和類型安全的代碼,泛型允許您創(chuàng)建可以處理多種類型(而不是單個類型)的組件,本文深入探討了 TypeScript 泛型,提供了詳盡的解釋和代碼示例來說明它們的用法和好處
    2024-02-02
  • JavaScript中閉包的詳解

    JavaScript中閉包的詳解

    本文主要介紹了JavaScript中閉包的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • javascript 拖放效果實(shí)現(xiàn)代碼

    javascript 拖放效果實(shí)現(xiàn)代碼

    JavaScript擅長于修改頁面中的DOM元素,但是我們使用JavaScript通常只是實(shí)現(xiàn)一些簡單功能,例如實(shí)現(xiàn)圖片的翻轉(zhuǎn),網(wǎng)頁中的標(biāo)簽頁,等等。這篇文章將向你展示如何在頁面中,對創(chuàng)建的元素實(shí)現(xiàn)拖放。
    2010-01-01
  • JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件詳解

    JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件詳解

    這篇文章主要介紹了JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件,這篇文章主要介紹了JavaScript事件監(jiān)聽器addEventListener()方法和一些基本事件的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • axios基本入門用法教程

    axios基本入門用法教程

    之前當(dāng)vue更新到2.0之后,作者就宣告不再對vue-resource更新,而是推薦的axios,前一段時間用了一下,現(xiàn)在說一下它的基本用法。文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • 微信小程序組件化開發(fā)的示例介紹

    微信小程序組件化開發(fā)的示例介紹

    雖然小程序在剛推出時是不支持組件化的,但如今小程序開始支持自定義組件開發(fā),下面這篇文章主要給大家介紹了關(guān)于微信小程序組件化開發(fā)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • HTML的select控件美化

    HTML的select控件美化

    本文主要介紹了HTML的select控件美化以及js實(shí)現(xiàn)select選擇功能的方法步驟。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • js實(shí)現(xiàn)瀑布流效果(自動生成新的內(nèi)容)

    js實(shí)現(xiàn)瀑布流效果(自動生成新的內(nèi)容)

    本文主要介紹了js實(shí)現(xiàn)瀑布流效果:當(dāng)滾動條接近底部會自動生成新的內(nèi)容。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • javascript關(guān)于運(yùn)動的各種問題經(jīng)典總結(jié)

    javascript關(guān)于運(yùn)動的各種問題經(jīng)典總結(jié)

    這篇文章主要介紹了javascript關(guān)于運(yùn)動的各種問題,實(shí)例總結(jié)了javascript關(guān)于滾動的常見錯誤、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • JavaScript數(shù)組中reduce方法的應(yīng)用詳解

    JavaScript數(shù)組中reduce方法的應(yīng)用詳解

    JavaScript 中的reduce()方法可以用于將數(shù)組元素匯總為單個值,,所以本文為大家整理了一些JavaScript數(shù)組中reduce方法的應(yīng)用,需要的可以參考一下
    2023-07-07

最新評論

襄汾县| 黄浦区| 枞阳县| 贡山| 原阳县| 社会| 常山县| 桐柏县| 水城县| 桃园市| 威海市| 确山县| 四川省| 琼海市| 宁明县| 文山县| 赤水市| 潞西市| 饶平县| 通渭县| 梁平县| 民县| 莱西市| 聂荣县| 岳池县| 东明县| 寿阳县| 吴堡县| 科技| 平昌县| 西乌珠穆沁旗| 宁波市| 福州市| 黔西| 砀山县| 榆中县| 黄浦区| 普格县| 南投县| 涿鹿县| 嘉祥县|