Я пытаюсь анимировать следующие элементы html
, чтобы реализовать функциональность, аналогичную колесику громкости.
<svg id="circle_svg" width="200" height="175">
<circle cx="100" cy="85" r="75" stroke="black" stroke-width="2" fill="lightgray"/>
<line id="line_alpha" x1="100" y1="85" x2="100" y2="160" style="stroke:rgb(0,0,255);stroke-width:2"/>
<circle id="dot_alpha" cx="100" cy="160" r="10" stroke="black" stroke-width="2" fill="red"/>
</svg>
Основная идея заключается в том, что щелчок по красной точке и перемещение мыши должны привести к следующему поведению:
- Красная точка перемещается по окружности (даже если мышь не остается точно на ней).
- Конечная точка линии на круге следует за красной точкой.
- Число, показанное где-то еще на странице, увеличивается или уменьшается в зависимости от величины углового смещения.
Я нашел в Интернете демонстрацию, которая позволяет перетаскивать круг svg по всей странице, связывая элементы интересующие события mousedown
и mouseup
и перезапись атрибута cx
и cy
круга в текущее положение мыши.
Однако при тестировании кода на jsfiddle
с моим примером (или даже с исходным кодом) что-то не работает. Не могли бы вы посмотреть и дать мне совет, что может быть не так?