【发布时间】:2020-05-12 20:48:01
【问题描述】:
我目前正在探索 FLIP technique 的可能性,它将所有 CSS 转换仅减少到 transform 和 opacity(因为 GPU 加速)。它涉及直接使用 Javascript 操作样式。虽然触发这样的转变并不难,但我发现自己无法扭转它。通常是在 CSS 中定义的过渡,例如当您停止悬停时,悬停会自动反转。但是 CSS 不足以触发(和反向)点击转换。我希望能够做到以下几点:
a) 点击一个项目(并通过例如 CSS 类切换触发大小更改)
b) 计算其初始大小和新大小之间的差异,并触发 transform 和 transition
c) 在它改变大小时再次单击它
d) 从点击时的位置反转过渡
我的问题在于 d) 步骤。由于某种原因,元素突然将其大小更改为既不是旧大小也不是新大小,而是完全不同的大小。我有一个我在这里尝试做的例子:
https://codesandbox.io/s/flamboyant-snowflake-47t59
单击一个正方形,然后在它放大时再次单击它。
有什么可靠的方法可以正确地做我想做的事吗?有没有好的替代品?
【问题讨论】:
标签: javascript html css animation css-transitions