Css cubic-bezier()函数是如何工作的?

Css cubic-bezier()函数是如何工作的?,css,css-transitions,Css,Css Transitions,我目前正在尝试学习如何使用cubic-bezier(),但我有点挣扎 据我所知,它有助于创建一条贝塞尔曲线,它由4个点组成,比如说P0,p1,p2,p3 P0和p3分别具有坐标(0,0)(1,1),它们表示曲线的起点和终点 X代表时间,Y代表进程 如果我的函数看起来像 transition-timing-function: cubic-bezier(0.7, 0.2, 1, 1); 我的动画不应该很慢,直到7/10的过渡时间(所以在7/10的过渡时间,我得到0.2的进展),并在其余时间非常快?

我目前正在尝试学习如何使用cubic-bezier(),但我有点挣扎

据我所知,它有助于创建一条贝塞尔曲线,它由4个点组成,比如说P0,p1,p2,p3

P0和p3分别具有坐标(0,0)(1,1),它们表示曲线的起点和终点

X代表时间,Y代表进程

如果我的函数看起来像

transition-timing-function: cubic-bezier(0.7, 0.2, 1, 1);
我的动画不应该很慢,直到7/10的过渡时间(所以在7/10的过渡时间,我得到0.2的进展),并在其余时间非常快?(因此,7/10->10/10时间段的部分应该有0.8的动画-因此应该非常快)

这就是我假设它工作的方式,实际上它不工作。 这是我的密码

.transitionTest{
宽度:200px;
高度:200px;
背景颜色:蓝色;
利润率:100px 0 0 100px;
过渡性质:全部;
过渡时间:2s;
过渡计时功能:立方贝塞尔(0.7,0.2,1,1);
}
.transitionTest:悬停{
变换:旋转(180度);
背景色:红色;
宽度:100px;
高度:100px;
}
我的动画不应该很慢,直到7/10的过渡时间(所以在7/10的过渡时间,我得到0.2的进展),并在其余时间非常快

不是真的,因为点不会定义计算,而是定义曲线,然后需要考虑曲线来寻找级数。以下是您的点的贝塞尔曲线:

黑色曲线是您的动画,您在开始时会有点慢。大约在
70%
的时候,您将到达动画的
50%
,另一个
50%
将从
70%
100%

要得到你想要的(20%在70%)你需要下面的东西

.box{
宽度:200px;
高度:200px;
背景颜色:蓝色;
利润率:100px 0 0 100px;
过渡性质:全部;
过渡时间:2s;
过渡计时功能:立方贝塞尔(0.6,0.05,1,0.2);
}
.box:悬停{
变换:旋转(180度);
背景色:红色;
宽度:100px;
高度:100px;
}

很抱歉,您能告诉我们预期的结果,以便我们了解您的问题吗。因为对我来说,你的代码工作得很好。嗯,我理解。所以基本上我不应该像以前那样考虑这些值-我需要看看曲线是什么样子。@JohnSmith是的,确切地说,曲线会给出输出,而不是值。这些值只会画出我得到的曲线。谢谢你抽出时间。你自己怎么用?比如说,如果你想得到我在帖子中说的组合。你将如何开始投射它?@JohnSmith使用我在上一个链接中提供的工具。。你把你的4个点(两个固定的一个在(0,0)和(1,1)),然后你开始玩另外两个并调整它们。您将看到输出随点而变化,当您得到所需的结果时,您将停止这些输出。。。。后面的数学有点复杂,所以最好依靠这种可视化工具来获得你想要的东西,但是你怎么知道你需要使用这2个点(在最后一张图片中)来获得我想要的效果?