
css
.box {
width: 100px;
height: 100px;
background-color: coral;
transition: 1s;
}
.box-action {
transform: translateX(300px);
background-color: blue;
}
html
<div class="box"></div>
javascript
const box = document.querySelector('.box');
box.addEventListener('click', () => {
box.classList.toggle('box-action');
});
실행결과

이 속성을 어떻게 주느냐에 따라 천차만별의 효과가 나타난다.

.box {
width: 100px;
height: 100px;
background-color: coral;
transition: 1s cubic-bezier(0.18, -0.44, 0.6, 1.32);
}
실행결과

각 사이드에서 띠요옹~ 하는 효과(?)가 들어감
속성마다 다르게 transition주는 방법은 쉼표(,)로 구분하기
.box {
width: 100px;
height: 100px;
background-color: coral;
transition:
transform 1s cubic-bezier(0.18, -0.44, 0.6, 1.32),
background-color 1s 3s ease;
}
실행결과

클릭함과동시에 1초만에 이동, 클릭함과 동시에 3초 후 1초만에 색변경이 이루어짐
box.addEventListener('transitionstart', e => {
console.log(`${e.propertyName} START`);
});
box.addEventListener('transitionend', e => {
console.log(`${e.propertyName} END`);
});
box.addEventListener('transitionrun', e => {
console.log(`${e.propertyName} RUN`);
});
box.addEventListener('transitioncancel', e => {
console.log(`${e.propertyName} CANCEL`);
});
-실행결과-
background-color RUN
transform RUN
transform START
transform END
background-color START
background-color END
클릭함과 동시에 두개의(background-color, transform) 속성값의 transition이 RUN
transform이 먼저 START되고 1초만에 END됨
그 이후 3초경과후 background-color가 START되고 1초만에 END가 찍힘.
그럼 cancel은 언제 사용하지...?
-> 컴포넌트가 애니메이션 도중에 없어지면 cancel이 발동함 (ex. box.remove())