CSS如何强制旋转轮向一个方向旋转?

knsnq2tg  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(165)

我在React中创建了一个简单的旋转轮。
我有一个int值,输出轮子应该转多少度。
但问题是转型似乎抵消了这一点。
例如,旋转(1080度)应该做3个完整的顺时针旋转,但我的旋转轮做随机旋转次数,有时它只是在逆时针方向旋转。
我目前正在使用:transition: transform 5s ease-in-out

有没有办法保证旋转时顺时针旋转,或者至少让它做更多的旋转?
在SpinningWheel.js中

# sorry entire file is very big and so I just cut and paste these
# react hook
const [WheelSpinner, setWheelSpinner] = useState({
    transform: 0
});

# onClick turn
let wheel_value = (Math.random() * 8).toFixed(2);
setWheelSpinner({ transform: `rotate(${wheel_value}turn)` });

# return
<div className='wheel--spinner' style={WheelSpinner}>
      {elements.map((element) => (
         <div className='wheel--number' key={element.id} ref={(el) => (refs.current[element.id] = el)} style={element.style}>
               <span>{element.content}</span>
         </div>
      ))}
</div>

在SpinningWheel.css中:

.wheel--spinner {
    position: relative;
    width: 400px;
    height: 400px;
    background: #333;
    border-radius: 50%;
    overflow: hidden;
    transition: transform 5s ease-in-out;
}

我一直在研究“关键帧”之类的东西,但运气不真实的。或者至少看起来对我用50%,100%变换尝试过的基本效果没有帮助。
chatGPT提供了将“轻松进出”替换为“线性”作为解决方案,但我不认为这有帮助,我更喜欢平滑过渡的轻松进出。

carvr3hs

carvr3hs1#

你的问题需要更多的澄清,但我猜每次你点击一个随机数将生成和微调旋转的基础上。
对于测试用例场景,考虑第一次随机数为2.5,因此微调器将旋转2.5倍。第二次单击随机数为1.5。在此状态下,微调器已顺时针旋转2.5倍,现在必须逆时针旋转1整圈才能旋转1.5倍。
您必须将以前的旋转添加到生成的当前随机数中,以获得您想要的结果

相关问题