Добрый день.
Нужно реализовать движущийся логотип Яндекс.Практикума стрелками.
Я уже реализовал все необходимое для состояния.
Мое решение - разрезать логотип на квадраты размером 25 пикселей. Когда вы нажимаете одну из кнопок со стрелками, квадраты попадают в путь 25 пикселей в соответствующем направлении. Или, если некоторые квадраты получают координаты, выходящие за границы, соответствующие нажатой кнопке со стрелкой, эти квадраты имеют координаты, равные «противоположная сторона минус 25 пикселей» (их координаты вычисляются в верхней левой точке). Во время тестирования у меня возникает ошибка, когда логотип выходит за одну из границ. Логотип не соответствует размеру или содержанию. Что может вызвать это? Я полагаю, это потому, что некоторые параметры из приведенных выше условий не кратны 25. Но я понятия не имею, как учесть это в моем коде.
Ниже все, что реализовал.
https://jsfiddle.net/3bz1rft8/5/
Условия для логотипа:
- размер канваса — 400x400px;
- толщина линий — 16px;
- длина вертикальной линии — 150px;
- длина горизонтальной линии — 100px;
- цвет фона — чёрный;
- цвет линии — белый;
- расстояние по оси X от вертикальной до горизонтальной линии (ближайшие друг к другу границы) — 22px;
- расстояние по оси Y от вертикальной до горизонтальной линии — 22px;
- логотип должен располагаться по центру.
Условия для анимации:
- логотип передвигается по нажатию стрелок на клавиатуре: вверх, вниз, вправо, влево;
- каждое передвижение смещает логотип целиком на 25px;
- передвижение логотипа должно быть цикличным — если логотип выходит за пределы канваса, то исчезнувшая часть должна появиться с противоположной стороны.