加载动画
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>散点图</title>
<script src="js/lib/echarts.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/lib/jquery.min.js"></script>
</head>
<body>
<div style="padding-left: 20px;width: 600px;height: 600px;"></div>
<script>
var mCharts = echarts.init(document.querySelector('div'))
mCharts.showLoading();
$.get('data/test_data.json',function(ret){
mCharts.hideLoading();
var axisData = []
for( var i=0;i<ret.length;i++) {
var height = ret[i].height
var weight = ret[i].weight
var newArr = [height, weight]
axisData.push(newArr)
}
var option = {
xAxis:{
type:'value',
scale:true,
},
yAxis:{
type:'value',
scale:true,
},
series:[
{
data: axisData,
type:'effectScatter',
showEffectOn:'emphasis',
rippleEffect:{
scale:10
},
symbolSize:function(arg){
console.log(arg);
var height = arg[0]/100;
var weight = arg[1];
if(weight/(height*height) > 28){
return 20
}
return 5
},
itemStyle:{
color:function(arg){
var height = arg.data[0]/100;
var weight = arg.data[1];
if(weight/(height*height) > 28){
return 'red'
}
return 'green'
}
}
}
]
}
mCharts.setOption(option);
window.onresize = mCharts.resize;
})
</script>
</body>
</html>
增量动画
- 所有的更新都通过setOption实现
- 不用考虑数据哪产生了变化
- Echarts会找到两组数据之间的差异然后通过合适的东爱护去表现数据的变化
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>增量动画</title>
<script src="js/lib/echarts.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="main" style="width: 600px;height:400px;"></div>
<button id="modify">修改数据</button>
<button id="add">增加数据</button>
<script type="text/javascript">
var myChart = echarts.init(document.querySelector('div'));
var xDataArr = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"];
var yDataArr = [5, 20, 36, 10, 10, 20];
var option = {
xAxis: {
type:'category',
data: xDataArr
},
yAxis: {
type:'value',
},
series: [
{
name: '销量',
type: 'bar',
data: yDataArr,
}
]
};
myChart.setOption(option);
var btnModify = document.querySelector('#modify')
btnModify.onclick = function(){
var newYDataArr = [100, 2000, 36, 10, 10, 20];
var option = {
series: [
{
data: newYDataArr,
}
]
};
myChart.setOption(option);
}
var btnAdd = document.querySelector('#add')
btnAdd.onclick = function(){
xDataArr.push("nike鞋");
yDataArr.push(100);
var option = {
xAxis: {
data: xDataArr
},
series: [
{
data: yDataArr,
}
]
};
myChart.setOption(option);
}
</script>
</body>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/46044f60f887d0e701333ddced4244b6.png)
动画的配置
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>增量动画</title>
<script src="js/lib/echarts.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
var myChart = echarts.init(document.querySelector('div'));
var xDataArr = ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"];
var yDataArr = [5, 20, 36, 10, 10, 20];
var option = {
animation:true,
animationDuration:7000,
animationDuration : function(arg) {
console.log(arg);
return 2000 * arg
},
animationEasing:'bounceOut',
animationThreshold:7,
xAxis: {
type:'category',
data: xDataArr
},
yAxis: {
type:'value',
},
series: [
{
name: '销量',
type: 'bar',
data: yDataArr,
}
]
};
myChart.setOption(option);
</script>
</body>
</html>