CSS动画在执行期间重置
我正在使用webkit关键帧设置一些矩形的动画。从我所看到的一切来看,动画应该运行正常。我正在使用CSS动画在执行期间重置,css,css-animations,Css,Css Animations,我正在使用webkit关键帧设置一些矩形的动画。从我所看到的一切来看,动画应该运行正常。我正在使用转发修改器来保留动画更改,并且我的所有语法都是正确的(请参见下面我的CSS)。但是,每次执行时,动画似乎都会在发生动画更改时删除这些更改 例如,假设我将矩形的宽度修改为0%,然后将矩形旋转为25%。旋转时,宽度将恢复到其原始设置。我真的不知道这里发生了什么。我是否缺少关键帧的一个基本方面 .navbar-toggler:not(.collapsed) .icon-bar:nth-child(1) {
转发
修改器来保留动画更改,并且我的所有语法都是正确的(请参见下面我的CSS)。但是,每次执行时,动画似乎都会在发生动画更改时删除这些更改
例如,假设我将矩形的宽度修改为0%,然后将矩形旋转为25%。旋转时,宽度将恢复到其原始设置。我真的不知道这里发生了什么。我是否缺少关键帧的一个基本方面
.navbar-toggler:not(.collapsed) .icon-bar:nth-child(1) {
opacity: 100;
-webkit-animation: close-top 5s forwards;
}
@-webkit-keyframes close-top {
0% {transform: translate(0px, 5px);}
33% {transform: translate(0px, 15px);}
66% {transform: scaleX(0.5);}
100% {transform: rotate(-45deg);}
}
动画的所有阶段都是
transform
settings–如果触发了一个新的阶段,它将替换上一个阶段(将以前的参数设置回默认值)。为了避免这种情况,请将以前的值/参数保留在新的变换设置中,然后添加新的参数/设置,如下所示:
.test{
宽度:100px;
高度:60px;
背景:#fa0;
-webkit动画:关闭前5名;
}
@-webkit关键帧关闭顶部{
0% {
转换:转换(0px,5px);
}
33% {
转换:转换(0px,15px);
}
66% {
转换:转换(0px,15px)scaleX(0.5);
}
100% {
变换:平移(0px,15px)scaleX(0.5)旋转(-45度);
}
}
TEST
动画的所有阶段都是transform
设置–如果触发了一个新的阶段,它将替换上一个阶段(先前的参数将动画设置回其默认值)。为了避免这种情况,请将以前的值/参数保留在新的变换设置中,然后添加新的参数/设置,如下所示:
.test{
宽度:100px;
高度:60px;
背景:#fa0;
-webkit动画:关闭前5名;
}
@-webkit关键帧关闭顶部{
0% {
转换:转换(0px,5px);
}
33% {
转换:转换(0px,15px);
}
66% {
转换:转换(0px,15px)scaleX(0.5);
}
100% {
变换:平移(0px,15px)scaleX(0.5)旋转(-45度);
}
}
测试
这是因为转换
属性是如何工作的。每次在关键帧中设置transform
,都会覆盖上一个值
你想要的是这样的:
@-webkit-keyframes close-top {
0% {transform: translate(0px, 5px);}
33% {transform: translate(0px, 15px);}
66% {transform: scaleX(0.5) translate(0px, 15px) ;}
100% {transform: rotate(-45deg) scaleX(0.5) translate(0px, 15px);}
}
请注意,我是如何将以前的转换保留在值中,并将新的更改添加到列表的前面的
各个变换从右向左求值 这是因为
transform
属性是如何工作的。每次在关键帧中设置transform
,都会覆盖上一个值
你想要的是这样的:
@-webkit-keyframes close-top {
0% {transform: translate(0px, 5px);}
33% {transform: translate(0px, 15px);}
66% {transform: scaleX(0.5) translate(0px, 15px) ;}
100% {transform: rotate(-45deg) scaleX(0.5) translate(0px, 15px);}
}
请注意,我是如何将以前的转换保留在值中,并将新的更改添加到列表的前面的
各个变换从右向左求值 每个步骤都会覆盖上一个步骤属性转换,您可以做的是将上一个更改附加到此属性,如下所示:
.navbar切换程序:未(.collapsed)。图标栏:第n个子项(1){
不透明度:100;
背景色:黑色;
宽度:100px;
高度:100px;
-webkit动画:关闭前5名;
}
@-webkit关键帧关闭顶部{
0%{transform:translate(0px,5px);}
33%{transform:translate(0px,15px);}
66%{transform:translate(0px,15px)scaleX(0.5);}
100%{transform:translate(0px,15px)scaleX(0.5)rotate(-45度);}
}
每一步都会覆盖上一步的属性转换,您可以做的是将之前的更改附加到此属性,如下所示:
.navbar切换程序:未(.collapsed)。图标栏:第n个子项(1){
不透明度:100;
背景色:黑色;
宽度:100px;
高度:100px;
-webkit动画:关闭前5名;
}
@-webkit关键帧关闭顶部{
0%{transform:translate(0px,5px);}
33%{transform:translate(0px,15px);}
66%{transform:translate(0px,15px)scaleX(0.5);}
100%{transform:translate(0px,15px)scaleX(0.5)rotate(-45度);}
}
您可能需要连接转换:100%{transform:rotate(-45deg)translate(0px,15px);}
连接会消除转换之间的区别吗?我需要每个变换都是明显的而不是模糊在一起。您可能需要连接变换:100%{transform:rotate(-45deg)translate(0px,15px);}
连接会消除变换之间的区别吗?我需要每个变换都是明显的,而不是模糊在一起