#html #css #svg #css_animation #smil
Есть rect, которому нужно задать анимацию поворота "туда-обратно", неважно через CSS-анимации или через SMIL, анимация всё равно простая. Но возникает трудность с определением точки, от которой производится поворот фигуры. Нужно чтобы он производился от середины нижней грани прямоугольника, но как определить эти координаты? Для наглядности я привёл свой ошибочный пример, где circle отображает точку от которой нужно совершить поворот.
Ответы
Ответ 1
Задайте transform-origin в пикселях, как и центр круга... svg { height: 300px; width: 300px; background-color: grey; } rect { animation: anim 2s ease-in-out infinite; transform-origin: 165px 170px; } @keyframes anim { 0% {transform: rotate(-10deg)} 50% {transform: rotate(370deg)} 100% {transform: rotate(-10deg)} }Ответ 2
Вариант SVG smil Но возникает трудность с определением точки, от которой производится поворот фигуры. Нужно чтобы он производился от середины нижней грани прямоугольника, но как определить эти координаты? Определение координат центра вращения Для прямоугольникакоордината X - центра вращения: координата левого верхнего угла прямоугольника (x) + width/2 x = 150+30/2 = 165px координата Y центра вращения: y = 120 + 50 = 170px Вращение одного прямоугольника svg { height: 300px; width: 300px; background-color: grey;
Комментариев нет:
Отправить комментарий