У меня есть приложение React со значком на карте Leaflet и значением от 0 до 359, указывающим его текущее направление.
Я хочу transform: rotate(Xdeg)
значок и использовать transition
, чтобы оживить это вращение.
Моя проблема в том, что когда значение переходит 0
(или 360
), переход происходит в противоположном направлении.
Можно ли изменить поле с transform: rotate(340deg)
на transform: rotate(10deg)
и повернуть его по часовой стрелке?
Пример CodePen здесь
const App = () => {
const [rotation, setRotation] = React.useState(340);
return (
<div id="wrapper">
<div>
<div className="box-wrapper">
{/* Here is where I'm setting the rotation CSS transform dynamically */}
<div className="box" style={{ transform: `rotate(${rotation}deg)` }}>
<span>{ `Rotation: ${rotation}deg` }</span>
</div>
</div>
</div>
<div>
<button onClick={() => setRotation((rotation + 10) % 360)}>+10 deg</button>
<button onClick={() => setRotation(((360 + (rotation - 10)) % 360))}>-10 deg</button>
<button onClick={() => setRotation(340)}>340 deg</button>
<button onClick={() => setRotation(20)}>20 deg</button>
</div>
</div>
)
}