zrender-粒子动画

Posted snowbxb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zrender-粒子动画相关的知识,希望对你有一定的参考价值。

效果:

技术图片

 

 

let x = shuN.style.x + rectValue/4,//粒子开始的地方
y = zuY+140 + 5,
h = 14*0.8,
w = rectValue/2;
this.drawParticles(x, y , w, h, 20, 0, i);

//画牵引粒子

drawParticles(x, y, w, h, num, seriesId, dataId) {//x, y , w, h, 20, 0, i
let partclesGroup = this.getSave(‘partclesGroup‘, seriesId, dataId);
if(!partclesGroup) {
partclesGroup = new zrender.Group();
this.zr.add(partclesGroup);
this.setSave(partclesGroup, seriesId, dataId, ‘partclesGroup‘)
} else {
return;
partclesGroup.removeAll();
}

for(let i = 0; i < num; i++) {
let targetH = Math.random() * w/ 6;//随机
let p = new zrender.Rect({
shape: {
// x: x + Math.random() * (w - 2),
// y: y + h,
x: x +w/2,
y: y + Math.random() * (h - 2),//高度随机改变
width: 2,//粒子的宽
height: 2//粒子的高
},
style: {
fill: ‘#0d81e8‘,
opacity: 0
}
})
partclesGroup.add(p);
let time = w * 10;
let curtime = time * (targetH + w / 2) / w;
//改变x的位置
p.animate(‘shape‘, true).when(curtime + 1000, {
x: x-w/4
}).delay(i * 90 + 500).start();
//每个时刻的透明度
p.animate(‘style‘, true).when(1000, {
opacity: 1
}).when(curtime / 2 + 1000, {
opacity: 1
}).when(curtime + 1000, {
opacity: 0
}).delay(i * 50 + 500).start();
}

}

 

为便于看

技术图片

 

 

以上是关于zrender-粒子动画的主要内容,如果未能解决你的问题,请参考以下文章

zrender--切割元素(让矩形图片有一个圆角弧度)--因为不想写粒子 所以用图片代替

ZRender文档研读

使用vue+zrender绘制体温单 三测单

Canvas类库zrender

Echarts-ZRender源码分析

HTML5粒子螺旋线条3D动画