#javascript #reactjs #svg #d3.js
Вопрос:
У меня рации выровнены на арке.
Я хотел бы добавить переход, который перемещает выбранную внутреннюю синюю точку вдоль арки к недавно выбранному радио.
У меня есть рабочая демонстрационная установка. РАБОЧАЯ ДЕМОНСТРАЦИЯ
Ответ №1:
Смотрите решение в скрипке (нажмите на синюю кнопку):
Просто поместите кнопку в «g» и поверните ее с переходом:
const button = d3.select("#button");
let angle = 60;
button.on("click", () => {
angle = -angle;
button.transition().duration(1000).attr("transform", `translate(${cX}, ${cY}) rotate(${angle})`);
});
Комментарии:
1. мне нужно, чтобы он работал, когда я выбрал невыбранное радио. это работает только с уже выбранным радио
2. также можете ли вы использовать мою демо-версию?
Ответ №2:
Другой вариант-использовать анимацию вдоль пути:
<svg width="300" height="200">
<path fill="none" stroke="blue" stroke-width="3"
d="M 20,20 A 100,100 0 0 0 220,20" />
<circle r="10" fill="white" stroke="blue" stroke-width="3">
<animateMotion dur="3s" repeatCount="indefinite"
path="M 20,20 A 100,100 0 0 0 220,20 A 100,100 1 1 1 20,20" />
</circle>
</svg>