【发布时间】:2013-08-02 22:37:39
【问题描述】:
我创建了这个小提琴来演示这个问题:
动画旋转和悬停似乎可以很好地改变方向,但是当我将鼠标悬停在项目上进行转换时切换是跳跃的,而不是像我想要的那样平滑地反转方向。
这是没有浏览器前缀的基本代码:
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.spin {
animation: spin 3.5s linear 0s infinite normal;
width: 100px;
height: 100px;
border-radius: 50px 50px 50px 50px;
overflow: hidden;
margin-left: -50px;
margin-top: -50px;
top: 50%;
left: 50%;
position: absolute;
}
.spin:hover {
animation: spin 3.5s linear 0s infinite reverse;
}
我一直在尝试解决以下问题:
transition-property: transform;
transition-duration: 0s;
transition-timing-function: ease-in-out;
试图使动画平滑,以便符号平滑地反转方向,但我似乎不太正确......任何帮助都会很棒!
【问题讨论】:
-
导致 snappong 动作的原因是 0% = 0º 和 100% = 360º。当您在悬停时反转此操作时,它将捕捉到 360º,因为它只是反转关键帧。这就是为什么如果你将鼠标悬停在它上面,你会看到它是平滑的。
-
我试过 ADDNIG: @keyframes spinreverse { 0% { transform: rotate(360deg); } 100% { 变换:旋转(0度); } } AND .spin:hover { 动画:spinreverse 3.5s 线性 0s 无限正常;现在它跳回到原来的位置...如何获得平滑的反向效果???还为 100% 变换尝试了 -360 度,这有点平滑但仍然跳跃了一点
-
无论上述选项仅允许符号跳回其原始位置,该位置更平滑但不像我想要的那样平滑反转方向......如果这在 CSS 中是不可能的,我会打开一个javascript解决方案....