标签:动画效果 粒子 dem title 微软 push 信息 图片 utc
canvas粒子文字动画效果绚丽,实现的方法和难点主要是根据缓动函数来确定粒子的轨迹。
创建一个canvas,在canva上绘制文字或图片,然后获取像素的信息并生成一个粒子数组
var imageData = ctx.getImageData(0,0,canvas.width,canvas.height);
...
var dotList = [];
for(var x=0; x<imageData.width; x+=mass) {
for(var y=0; y<imageData.height; y+=mass) {
var i = (y*imageData.width + x) * 4;
if(imageData.data[i+3] > 128 && imageData.data[i] < 100){
var dot = new <em>Dot</em>(x, y, dotRadius);
dotList.push(dot);
}
使用缓动函数,所谓缓动函数,简单一句话就是“根据起点和终点,获取同时间所处的位置”
var effectFunc = {
easeInOutCubic: function (t, b, c, d) {
if ((t/=d/2) < 1) return c/2*t*t*t + b;
return c/2*((t-=2)*t*t + 2) + b;
},
easeInCirc: function (t, b, c, d) {
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
},
easeOutQuad: function (t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
}
}
...
...
curX = effectFunc[effect](this.currentFrame, this.startX, this.x-this.startX, this.frameCount);
curY = effectFunc[effect](this.currentFrame, this.startY, this.y-this.startY, this.frameCount);
在插件中我设置了很多参数,我们可以方便的调出我们想要的效果,具体的参数选项可以参考代码更容易理解哦
text:{
text:‘default‘,
font:‘bold 200px 微软雅黑‘,
mass:6,
doRadius:2,
yOffset:50,
start:‘centerBottom‘ //.动画开始位置
}
在线demo
标签:动画效果 粒子 dem title 微软 push 信息 图片 utc
原文地址:http://www.cnblogs.com/yanphp/p/7271869.html