javascript - 中途通过 JS 反转动画时出现 CSS 动画故障
问题描述
我遇到了一个问题,在完成大约 75% 的时候停止 CSS 动画,然后反转它的顺序,然后使用 JS 继续它。如果您运行下面的代码片段,您会看到您可以轻松地停止和反转立方体的动画,并将其反转到 50%。
var div = document.getElementById('div');
var timer = setTimeout(function() {
div.classList.add('paused');
}, 1000)
var timer = setTimeout(function() {
div.classList.add('reverse');
div.classList.remove('paused');
}, 1700)
@keyframes animation {
0% {
margin-left: 0px;
}
100% {
margin-left: 200px;
}
}
#div {
width: 100px;
height: 100px;
background-color: red;
animation: animation 2s linear infinite;
}
.paused {
animation-play-state: paused !important;
}
.reverse {
animation-direction: reverse !important;
}
<div id="div"></div>
但是,如果您尝试将其停止在 75% 并向后重新启动,它会以 25% 开始暂停动画(下面的片段)。
var div = document.getElementById('div');
var timer = setTimeout(function() {
div.classList.add('paused');
}, 1500)
var timer = setTimeout(function() {
div.classList.add('reverse');
div.classList.remove('paused');
}, 1700)
var timer = setTimeout(function() {
div.classList.add('paused');
}, 2800)
@keyframes animation {
0% {
margin-left: 0px;
}
100% {
margin-left: 200px;
}
}
#div {
width: 100px;
height: 100px;
background-color: red;
animation: animation 2s linear infinite;
}
.paused {
animation-play-state: paused !important;
}
.reverse {
animation-direction: reverse !important;
}
<div id="div"></div>
所以,我的问题是,有没有办法解决这个问题?某种 CSS 属性。我知道这可能不被认为是一个小故障,因为在反向完成 75% 时,框应该是 25%,即使它在屏幕上移动得太快了。
解决方案
推荐阅读
- c++ - 在两个进程directx 11之间持续共享纹理
- image - 如何在类组件中的函数调用上设置状态。在本机反应
- django - Select2 后端作为 '\t' 保存到数据库的问题,如何解决?
- python - 如何使用列表理解将字符串附加到列表中
- security - 实现将请求转发到客户站点的 Web 应用程序网关
- javascript - 带有 Karma 和 Jasmine 测试的 Angular 11 被破坏
- angular - 如何隐藏位置更改,但在 url 中以角度 9 显示参数
- python - 类的“Python NameError:未定义名称”
- docker - 如何将 docker 进程结果导出到本地文件 - 同时通过 ssh 连接到主机?
- pandas - PANDAS:在 value_counts() 中传递 normalize=True 只返回零