【发布时间】:2018-11-27 14:39:49
【问题描述】:
我确定这一定是以前被问过的,并且我已经找到了相关的问题,但我似乎无法解决这个问题。
我有一个元素,它接收一个类,然后扩展。稍后,当该类被删除时,它应该恢复(动画)回原来的宽度。
let el = document.querySelector('#side-bar');
el.addEventListener('click', evt => el.classList.toggle('contracted'));
#side-bar {
height: 100%;
width: 75px;
background: red;
position: fixed;
left: 0;
top: 0;
}
#side-bar.contracted {
animation: .5s side-bar-contract forwards;
}
#side-bar:not(.contracted) {
animation: .5s side-bar-expand forwards;
}
@keyframes side-bar-expand {
to {
width: 350px;
}
}
@keyframes side-bar-contract {
to {
width: 75px;
}
}
<div id='side-bar' class='contracted'></div>
展开动画效果很好。但是没有发生反转动画;它只是恢复到原来的属性,没有动画。
我做错了什么?
[编辑]
好吧,我显然应该提到为什么我不使用transition 这样做。这是一系列更广泛的依赖动画的一部分,这些动画一个接一个地按顺序运行。我的理解是,这种按时间顺序排列的重要情况对于animation 而不是transition 更好。
【问题讨论】:
标签: css animation css-animations