最近在项目中用到了echarts,在处理视图自适应问题上记录一下;同时比较一下和highcharts的区别;

    在echarts中有一个resize的函数,可以直接在监听窗口变化时重新渲染即可; 

//在原生代码中
var myCharts = echarts.init(document.getElementById('#myCharts'))
window.onresize = function (){
myCharts.resize()
}

    如果是在vue项目中用到(我的项目是vue框架)

//在vue中,将init的函数封装在methods对象中,然后在该方法中调用resize函数
methods:{
initChart(){
this.chart = echarts.init(document.getElementById('chart'))
let options = {}//省略
this.chart.setOption(options)       //resize的函数可在这里调用

window.onresize = function (){
this.chart.resize()
}
}
}

  在HighCharts中,有一个专门的函数可以直接设置。在highCharts的官方文档中,有一个函数reflow()重新适应函数

  reflow()让图表自适应容器,默认情况下,图表会自动响应window.resize时间来自适应图表容器(默认chart.reflow的配置是true),在图表中没办法响应事件时,则需要手动调用该函数

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title> </head>
<body> <div id="pieContainer"></div> <script src="js/highCharts/highcharts.js" type="text/javascript" charset="utf-8"></script>
<script src="js/highCharts/exporting.js" type="text/javascript" charset="utf-8"></script>
<script src="js/highCharts/highcharts-zh_CN.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var chart = Highcharts.chart('pieContainer', {
chart: {
spacing: [40, 0, 40, 0]
},
title: {
floating: true,
text: ' '
},
subtitle:{
text:'节点总数20个',
align:'center',
verticalAlign:'middle',
y:-10,
style:{
fontSize:14,
color:'#212121'
} },
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
},
point: {
events: {
mouseOver: function(e) { // 鼠标滑过时动态更新标题
// 标题更新函数,API 地址:https://api.hcharts.cn/highcharts#Chart.setTitle
chart.setTitle({
text: e.target.name + '\t' + e.target.y + ' %'
});
}
//,
// click: function(e) { // 同样的可以在点击事件里处理
// chart.setTitle({
// text: e.point.name+ '\t'+ e.point.y + ' %'
// });
// }
}
},
events:{
mouseOut:function(e){
console.log(e)
$('tspan').html('节点总数20个')
}
}
}
},
series: [{
type: 'pie',
innerSize: '80%',
name: '市场份额',
data: [{
name: 'Firefox',
y: 45.0,
url: 'http://bbs.hcharts.cn'
},
['IE', 26.8],
{
name: 'Chrome',
y: 12.8,
sliced: true,
selected: true,
url: 'http://www.hcharts.cn'
},
['Safari', 8.5],
['Opera', 6.2],
['其他', 0.7]
]
}]
}, function(c) { // 图表初始化完毕后的会掉函数
// 环形图圆心
var centerY = c.series[0].center[1],
titleHeight = parseInt(c.title.styles.fontSize);
// 动态设置标题位置
c.setTitle({
y: centerY + titleHeight / 2
});
});
</script>
</body>
</html>

  

  

  

echarts 视图自适应问题的更多相关文章

  1. Angular echarts图表自适应屏幕指令

    关于echarts图表自适应问题 一.引入js文件 1. 在html页面引入angular.min.js文件 2. 在html页面引入echarts.min.js文件 3. 在html页面引入app. ...

  2. vue echarts 大小自适应

    窗口大小时候 ,echarts图自适应 在创建图表的方法中直接,用resize方法 let myChart=this.$refs.myChart; let mainChart = echarts.in ...

  3. Echarts图标自适应问题(已解决)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. echarts图表自适应浏览器窗口的大小

    echarts问题描述 当浏览器窗口发生变化时,echarts图表未能自适应浏览器的变化,产生如下的效果 解决方案 在$(function(){}中添加 window.onresize = funct ...

  5. 多个echarts图自适应屏幕大小

    当一个echarts图时,可以这样做 //下面my_charts是html中echarts的ID var myChart= echarts.init(document.getElementById(& ...

  6. echarts图表自适应盒子的大小(盒子的大小是动态改变的),大到需要全屏展示

    项目中用到了echarts,并且页面是自适应的,且页面中有一个[放大.缩小]功能,因此图表还需要根据盒子的大小来变化. 即:两个需求,如下: ① 图表根据窗口的大小自适应 ② 图表根据所在盒子的大小自 ...

  7. echarts 图表自适应外部盒子大小

    项目中用到了echarts,由于页面是自适应的,还得兼容移动, 因此图表还需要根据盒子的大小来变化. 自适应窗口及盒子大小 页面中有一个[放大.缩小]功能,及全屏展示和预览图表 窗口自适应 let m ...

  8. 一起来玩echarts系列(二)------echarts图表自适应问题

    为了直观查看公司服务器各个进程占用的内存动态情况,我使用echarts进行数据可视化,具体的实现过程按下不表. 最后实现的效果如图: 然后问题就来了,因UI采用了Bootstrap响应式框架,所以除了 ...

  9. swift3 循环滚动视图 自适应横竖屏 reload数据源

    一句话创建banner图,可时时刷新 用到了 SnapKit.SDWebImage两个第三方库 实现步骤------------------------------------------------ ...

随机推荐

  1. Spring IOC DI AOP 的简单理解及应用

    Spring两大特性:IOC 和AOP.IOC 控制反转,AOP 面向切面编程 spring 核心容器的主要组件时Bean工厂(BeanFactory) ,Bean 工厂使用控制反转模式来降低程序代码 ...

  2. 【UR #5】怎样跑得更快

    题目 给定\(n,c,d\)和序列\(\{b_i\}\),求一个序列\(\{x_i\}\)满足 \[\sum_{j=1}^n\gcd(i,j)^c\times \rm{lcm(i,j)^d}\time ...

  3. 空类的sizeof,有一个虚函数的类的sizeof

    今天面试,忽然被问到这个题目,查了一下果然有欸. #include <iostream> using namespace std; class A { }; class B { publi ...

  4. shells - 有效登录 shell 的路径名

    描述 /etc/shells 是一个文本文件,其中包含有效登录 shell 的路径全名. chsh(1) 需要参考这个文件,并且其他程序也可以查询该文件.有些程序从这个文件判断用户是不是标准用户.比如 ...

  5. NFS 共享存储实战

    目录 NFS 共享存储实战 一.NFS概述 二.NFS部署 部署NFS客户端backup和web01 统一web.nfs.backup的用户权限 代码部署步骤 三.NFS配置详解 NFS存储小结 四. ...

  6. 低版本vsphere部署高版本导出的OVF 报“硬件系列vmx-13不受支持“解决办法

    用文本编辑器之类的工具  打开ovf模板 然后下拉20多行左右 找到vmx-13这条报错内容 将13更改为数字较低的值 例如11,12

  7. 转载:php excel 的处理

    下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...

  8. WinForm解决UI假死

    运行WinForm程序时,如果后台执行比较费时的操作,前天UI就会假死卡住,很影响使用感受,这里我们简单的解决一下这个问题 using System; using System.Collections ...

  9. HashMap不能使用基本数据类型作为key

    HashMap存储元素采用的是hash表存储数据,每存储一个对象的时候,都会调用其hashCode()方法,算出其hash值,如果相同,则认为是相同的数据,直接不存储,如果hash值不同,则再调用其e ...

  10. 通过cmd命令启动appium server,appium server安装过程

    电脑上已安装了appium desktop版,想在移动端自动化的过程中,通过脚本启动appium server,环境准备: 1.确保电脑安装了node.js,目前用的是node12 2.安装JDK,且 ...