我在画布上使用“源输入”合成渐变蒙版,我想为蒙版形状和渐变的拉伸设置动画。这是合成代码,一个名为 的函数drawList
:
var r = ctx.createLinearGradient(1100, 0, 1200 + stretch,0);
r.addColorStop(0,"rgba(255, 255, 255, 1.0");
r.addColorStop(0.8,"rgba(255, 255, 255, 0.0");
ctx.fillStyle = r;
ctx.globalCompositeOperation = "source-in";
ctx.fillRect(300, 0, 1200 + stretch, 1000);
stretch
从 0 开始并使用 增加动画功能requestAnimationFrame
,我已经验证了它在制作简单矩形甚至ctx.clearRect(300, 0, 1200 + stretch, 1000)
. 动画函数drawList
在每次迭代和drawList
.
drawList
根据上面矩形的渐变填充从淡入淡出加载列表文本。我遇到的问题是,只要调用动画函数,画布就会被擦除并且不会重绘列表。我会使用 ctx.clip(),但我确实需要渐变填充来创建淡入淡出效果。
有任何想法吗?这是画布的限制吗?