animation-direction: reverse
을 사용하여 CSS 키 프레임 애니메이션을 리팩터링하려고합니다. 컨테이너 div를 클릭하면 애니메이션을 트리거하는 jQuery ("활성"상태에 따라 앞으로 또는 뒤로)를 통해 "활성"클래스를 토글합니다. 앞으로 및 뒤로 애니메이션은 키 프레임이 반대 순서 인 경우를 제외하고는 똑같습니다. animation-direction: reverse
은 하나의 애니메이션을 사용하고 다른 애니메이션을 리버스하여 리펙토링 할 수 있다고 생각했지만 실제로는 그렇게 생각하지 않았습니다.CSS 키 프레임 애니메이션에서`animation-direction : reverse`가 작동하지 않는 이유는 무엇입니까?
링크 (animation-direction: reverse
를 사용하지 않고) codepen합니다 : https://codepen.io/soultrust/pen/gogKjN
다음 마크 업 및 CSS (말대꾸) 코드는 반대하지 않고 지금 작동하는 방식이다.
$width-height: 100px;
$duration: 1s;
$line-width: 10%;
$animation-distance: $width-height * .45;
@keyframes line-in {
0% { transform: translateY(-$animation-distance); }
50% { transform: translateY(0); }
100% { transform: rotate(-135deg); }
}
@keyframes line-out {
0% { transform: rotate(-135deg); }
50% { transform: translateY(0); }
100% { transform: translateY(-$animation-distance); }
}
.container {
margin: 10rem auto 0;
width: $width-height;
height: $width-height;
position: relative;
border: 1px solid black;
&.active {
.line {
animation-name: line-in;
animation-direction: normal;
}
}
}
.line {
width: 100%;
height: $line-width;
position: absolute;
top: 45%;
background-color: orange;
animation-direction: normal;
animation-name: line-out;
animation-duration: $duration;
animation-fill-mode: forwards;
}
I는 다음으로 "활성"애니메이션 변경
<div class="container">
<div class="line"></div>
</div>
는 양방향 작동을 중지 애니메이션.
&.active {
.line {
animation-name: line-out;
animation-direction: reverse;
}
}
나는 그것이 내가 그냥 animation-direction: reverse
을 설정하고 animation-name: line-in
를 사용하는 경우 때문에 같은 애니메이션을 사용하여 함께 할 수있는 뭔가가 생각, 그것은 정확하게 라인에서 역으로 애니메이션을 재생합니다.