前言忙活完动态表单,动态附件,动态表格等等事情后,最近公司又在进军报表可视化问题了,对于我们前端而言如何将一份份数据美美的展示在页面上实为一项艰巨的任务.对比了现有的几个比较有名的可视化工具之后,最终还是...
前言
忙活完动态表单,动态附件,动态表格等等事情后,最近公司又在进军报表可视化问题了,对于我们前端而言如何将一份份数据美美的展示在页面上实为一项艰巨的任务.
对比了现有的几个比较有名的可视化工具之后,最终还是决定使用G2
来进行项目开发.
G2
的使用方式及作用我这里就不展开了,想了解的小伙伴可以撮这里: vue中使用G2(一)
该篇文章主要是记录一下近期在使用G2
所遇到的一些比较坑的问题,如果正好你也在使用G2
,且不巧的遇到了和我一样的问题,那么应该能帮助到你一些.
一、forceFit
属性宽度自适应问题
在创建chart
图表的时候,要是你图表的宽度设置为自适应模式,切页面为栏栅布局的时候,如下:
const chart = new G2.Chart({
container: 'g1',
forceFit: true,
height: 270
})
复制代码
将forceFit
属性设置为true
. 此时打开这个有图表的页面,会发现图表产生样式错乱的情况,比如这样:
canvas超出了父元素的宽度。如果改变浏览器的大小,window.resize的时候才会触发forceFit: true这个属性,才会自适应屏幕的宽度,这时图表的大小是正常的。
解决方式为:在vue生命周期mounted初始化图表之后,加入以下代码即可:
const e = document.createEvent('Event')
e.initEvent('resize', true, true)
window.dispatchEvent(e)
复制代码
比如我的项目中:
mounted () {
this.initComponent()
},
methods: {
initComponent () {
const chart = new G2.Chart({
container: 'g1',
forceFit: true,
height: 270
})
const e = document.createEvent('Event')
e.initEvent('resize', true, true)
window.dispatchEvent(e)
...
}
复制代码
此时页面正常了:
二、自定义图表的高度问题
如上所述, G2
中提供了forceFit
属性使得图表宽度能自适应,但是在实际开发中我们可能希望图表的高度随父级容器的高度变化而变化.
文档中规定高度height
属性必需传递一个数字.这样就打破了我想直接设置高度为100%
的幻想.
既然高度必需规定为一个数字的话,那么我们就可以获取包裹图表的父元素的高度,然后再赋值给图表就可以了. 例如下面这个栗子
本文标题为:vue中使用G2问题汇总
基础教程推荐
- JS滚动到顶部踩坑解决记录 2023-07-10
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- Ajax+smarty技术实现无刷新分页 2022-12-15
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- Ajax发送和接收请求 2022-12-15
- HTML clearfix清除浮动讲解 2022-11-20
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11