【发布时间】:2020-04-16 17:24:47
【问题描述】:
我是网络开发的新手。在定义的事件之后,我想要在 JavaScript 上为文本设置动画。 找到了一个绘制线条动画的示例,但该方法不适用于弧(how to animate drawing lines on canvas 示例:http://jsfiddle.net/m1erickson/7faRQ/. 滚动并找到了一个方法(http://jsfiddle.net/loktar/uhVj6/4/),但只有十几个字母。在多行动画后,不准确性会升级,但动画会缩短,我找不到控制这些因素的解决方案。假设字母“P”是:
var l = 10 //factor of scale
function line010(current) {
context.beginPath();
context.moveTo(x-5*l, y-3/2*l);
context.lineTo(x-5*l, y-3/2*l-4*l*current);
context.stroke();
curPerc++;
if (curPerc < endPerc) {
requestAnimationFrame(function () {
line010(curPerc / 100)
});
}
}
function line011(current) {
context.beginPath();
context.moveTo(x-5*l, y-11/2*l);
context.lineTo(x-5*l+3/2*l*current, y-11/2*l);
context.stroke();
curPerc++;
if (curPerc < endPerc) {
requestAnimationFrame(function () {
line011(curPerc / 100)
});
}
}
function arc012(current) {
context.beginPath();
context.arc(x-7/2*l, y-9/2*l, l, -1/2*Math.PI, Math.PI*current-1/2*Math.PI);
context.stroke();
curPerc++;
if (curPerc < endPerc) {
requestAnimationFrame(function () {
arc012(curPerc / 100)
});
}
}
function line013(current) {
context.beginPath();
context.moveTo(x-7/2*l, y-7/2*l);
context.lineTo(x-7/2*l-l*current, y-7/2*l);
context.stroke();
curPerc++;
if (curPerc < endPerc) {
requestAnimationFrame(function () {
line013(curPerc / 100)
});
}
}
要指出的任何错误或其他更方便的方法来创建一组统一的字母,并在函数调用时为文本设置动画?我可以在其中插入文本并编译函数, 例如。
function draw("insertText")
{
A();
B();
C();
-
-
-
!();
&();
-
-
-
}(1000);
onload.draw(Thanks for your help!);
在画布上显示动画“感谢您的帮助!”
编辑:视觉输出如下图所示(单个字母/四行与十几个字母/五十行):
【问题讨论】:
标签: javascript html animation canvas drawing