CSS 动画在执行期间重置

标签 css css-animations

我正在使用 webkit 关键帧来为一些矩形设置动画。从我所看到的一切来看,动画应该可以正常运行。我正在使用 forwards 修饰符来保留动画更改并且我的所有语法都是正确的(请参阅下面的 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);}
}

最佳答案

每一步都会覆盖前一步的属性转换,您可以做的是将之前的更改附加到此属性,如下所示:

.navbar-toggler:not(.collapsed) .icon-bar:nth-child(1) {
    opacity: 100;
    background-color: black;
    width: 100px;
    height: 100px;
    -webkit-animation: close-top 5s forwards;
}
@-webkit-keyframes close-top {
    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(-45deg);}
}
<div class='navbar-toggler'>
  <div class='icon-bar'>
    <div></div>
  </div>
</div>

关于CSS 动画在执行期间重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756662/

相关文章:

javascript - 访问从 AJAX 创建的 DOM 中的信息

html - 在div中画一条线

css - 使用@font-face 打开 Sans 字体问题

html - 如何在css中选择被点击的输入

html - 具有填充模式的 CSS 动画包括过渡在 Firefox 中无法正常工作

jquery - 文本的缩放和淡出效果,文本在背景上可见

html - 仅使用 CSS 以 50% 的比例显示高 DPI 图像

css - 如何延迟 CSS 动画的开始?

css - 让 svg 在悬停时正确旋转

javascript - 将动画添加到 jQuery toggleClass() 的问题