버튼을 클릭 할 때 내 맞춤 요소를 200 픽셀 오른쪽으로 이동시키고 싶습니다. 요소가 클릭시 이동하기 시작합니다. 애니메이션에서 버튼을 다시 클릭하여 중지하고 요소가 초기 상태 (현재 상태에서 역 애니메이션)로 애니메이션 반환되도록 할 수 있어야합니다. CSS 애니메이션 - 애니메이션 중지 및 되돌리기
나는 CSS 전환과이를 달성 : 이var state = false;
var button = document.getElementById("but");
button.onclick = clickA;
function clickA(){
state = !state;
var el = document.getElementById("el");
if (state) el.setAttribute("class", "animatedElement open");
else el.setAttribute("class", "animatedElement");
}
.animatedElement {
padding-left: 0px;
transition: padding-left 5s;
}
.open {
padding-left: 200px;
}
<button id="but">Click</button>
<div id="el">element</div>
그래서 클릭에 난 그냥 구성 요소에 .open
클래스를 전환합니다.
저는 이것이 CSS 애니메이션과 관련이 있는지 알고 싶습니까? 나는이 시도 :
var state = false;
var button = document.getElementById("but");
button.onclick = clickA;
function clickA(){
state = !state;
var el = document.getElementById("el");
if (state) el.setAttribute("class", "animatedComponent-open");
else el.setAttribute("class", "animatedComponent-close");
}
@keyframes animationOpen {
0% {padding-left: 0px;}
100% {padding-left: 200px;}
}
.animatedComponent-open {
animation: animationOpen 3s normal forwards;
}
@keyframes animationClose {
0% {padding-left: 0px;}
100% {padding-left: 200px;}
}
.animatedComponent-close {
animation: animationClose 3s reverse forwards;
}
<button id="but">Click</button>
<div id="el">element</div>
을하지만 애니메이션의 중간에 클릭 할 때이 열린 애니메이션을 되돌릴 수는 없지만, 최종 상태로 이동 한 후 처음부터 가까운 애니메이션을 재생합니다.