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

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

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

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

這里可以通過(guò)echarts源碼獲取寬度的行為來(lái)解釋

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

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

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

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

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

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

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

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

說(shuō)明:

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

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

總結(jié)

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

相關(guān)文章

  • TypeScript泛型工作原理詳解

    TypeScript泛型工作原理詳解

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

    JavaScript中閉包的詳解

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

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

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

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

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

    axios基本入門(mén)用法教程

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

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

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

    HTML的select控件美化

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

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

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

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

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

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

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

最新評(píng)論

循化| 张家港市| 乐亭县| 应城市| 台安县| 平邑县| 丰宁| 济阳县| 蒙山县| 丰台区| 梧州市| 南丰县| 怀集县| 调兵山市| 集贤县| 陇川县| 鹤岗市| 贵德县| 鲁山县| 霍州市| 钦州市| 江孜县| 昭平县| 白水县| 阳曲县| 宣恩县| 长寿区| 屏山县| 平南县| 临朐县| 修水县| 信丰县| 吉木萨尔县| 凤冈县| 左权县| 辽阳市| 米易县| 汕尾市| 耿马| 舟曲县| 广水市|