【发布时间】:2016-02-14 09:41:53
【问题描述】:
是否可以保留关键帧动画强加的过渡?我想在完成之前删除带有关键帧动画的类并且不重置动画。
示例:
@keyframes right {
100% {
left: 500000px;
}
}
.animate-right {
animate: right 500s 1;
}
与点击该类的元素相关联的JS是:
function(e) {
var el = this;
setTimeout(function() {
el.className = el.className.replace('animate-right', '');
}, 500);
el.className += ' ' + animate-right;
}
执行上述操作会导致应用动画,直到它删除的类但重置回动画开始之前的位置。我曾尝试设置开始/停止点,但我不希望这样做,因为它非常暴力。示例:
function(e) {
var el = this;
setTimeout(function() {
el.style.left = el.getBoundingClientRect().left;
el.className = el.className.replace('animate-right', '');
}, 500);
el.style.left = 0;
el.className += ' ' + animate-right;
}
我也尝试在最后应用animation-play-state,但它仍然会重置。
【问题讨论】:
-
只有当你同时通过脚本设置
animation-play-state属性我猜。 -
不,你不能那样做。为什么要在课程完成之前将其删除?
-
我不想写很多动画,而是通用的动画
-
“我想在关键帧动画完成之前删除类”
class是如何被删除的?你能创建一个stacksn-ps来演示吗? -
我认为不需要 sn-p/fiddle,它是非常简单的代码。我将在问题中添加一些代码。
标签: javascript css keyframe