Я ищу, чтобы создать простой цикл анимации, используя html-холст. Каждый путь (или треугольник) предназначен для постепенного затухания и затем постепенного исчезновения в той же последовательности. Я нашел много ресурсов вокруг анимации с движением, но не с альфой и, особенно, без анимации путей подряд в холсте. Есть идеи?Как я могу анимировать альфа серии html путей холста?
Отказ от ответственности: Это мой первый набег на использование холста, и мое знание javascript - дрянное. Поскольку я использую ту же форму, я собираюсь выяснить, как копировать, вращать и переводить оригинал в виде отдельного обучения.
Обновление 1: Чтобы отслеживать мои успехи, here is a link to my sandbox.
Обновление 2: Я изменил структуру сценария, чтобы дать мне больше контроля над каждым путем.
var elem = document.getElementById('loader');
if (elem && elem.getContext) {
var ctxYellow = elem.getContext('2d');
var ctxOrange = elem.getContext('2d');
var ctxRed = elem.getContext('2d');
var ctxViolet = elem.getContext('2d');
var ctxBlue = elem.getContext('2d');
// Yellow triangle
if (ctxYellow) {
ctxYellow.fillStyle = '#f5ab1c';
ctxYellow.beginPath();
ctxYellow.moveTo(150, 150);
ctxYellow.lineTo(20, 75);
ctxYellow.lineTo(150, 0);
ctxYellow.lineTo(150, 150);
ctxYellow.fill();
ctxYellow.closePath();
}
// Orange triangle
if (ctxOrange) {
ctxOrange.fillStyle = '#f26d23';
ctxOrange.beginPath();
ctxOrange.moveTo(150, 150);
ctxOrange.lineTo(150, 0);
ctxOrange.lineTo(280, 75);
ctxOrange.lineTo(150, 150);
ctxOrange.fill();
ctxOrange.closePath();
}
// Red triangle
if (ctxRed) {
ctxRed.fillStyle = '#cd1f44';
ctxRed.beginPath();
ctxRed.moveTo(150, 150);
ctxRed.lineTo(280, 75);
ctxRed.lineTo(280, 225);
ctxRed.lineTo(150, 150);
ctxRed.fill();
ctxRed.closePath();
}
// Violet triangle
if (ctxViolet) {
ctxViolet.fillStyle = '#851a54';
ctxViolet.beginPath();
ctxViolet.moveTo(150, 150);
ctxViolet.lineTo(280, 225);
ctxViolet.lineTo(150, 300);
ctxViolet.lineTo(150, 150);
ctxViolet.fill();
ctxViolet.closePath();
}
// Blue triangle
if (ctxBlue) {
ctxBlue.fillStyle = '#295a9c';
ctxBlue.beginPath();
ctxBlue.moveTo(150, 150);
ctxBlue.lineTo(150, 300);
ctxBlue.lineTo(20, 225);
ctxBlue.lineTo(150, 150);
ctxBlue.fill();
ctxBlue.closePath();
}
}
Вы пробовали методы 'save' /' load'? – kirilloid
У меня нет. Но я не уверен, почему я хочу. –
Если вы хотите оживить что-то, не имея других объектов, вам будет достаточно с clearRect. В противном случае они могут быть полезны. – kirilloid