마이크로 상호작용을 위한 CSS 애니메이션
CSS로 애니메이션
transform은 어디까지나 원형에서 변형시키는 것이고, 애니메이션이 아닙니다.
transition
모니터링할 CSS 속성을 지정하고 속성이 변경되면 애니메이션을 실행합니다.
css
transition: background-color .2s ease-in
/*background-colorの監視*/
프로퍼티의 변경은, :hover등 미리 정의한 것 뿐만이 아니라, javascript에 의한 변경에도 적용됩니다.
js
var myElement = document.querySelector("#myElement");
myElement.style.backgroundColor = "333";
※
transition: all ~~~;
그러면 모든 프로퍼티를 감시할 수 있으므로 편리합니다만, 묘화가 무거워지는 원인이 되므로 피합시다.animation
사전에
@keyframes 名前 {変化}
라고 정의해 두고, animation 프로퍼티로부터 호출해, 중간점이나 루프 등 다양한 애니메이션에 관한 지정을 할 수 있습니다.css
@keyframes move {
from {
transform: translate(0, 0);
}
to {
transform: translate(10px, 10px);
}
}
css
.yeah {
animation: move 1s forwards;
}
/*moveアニメーションを1秒で行い、再生後、最後のキーフレームの状態を保持する*/
사용자 동작(hover 등)이 없어도 실행할 수 있다. 중간점, 루프, 시작 전·시작 후의 상태를 지정할 수 있는, 복수의 애니메이션을 연동시킬 수 있다 것이 매력적입니다.
※ 만약을 위해 transition과 animation에 대해 설명했습니다만, 링크 대상 쪽이 상세하게 쓰여져 있습니다.
마이크로 인터랙션에서 선택
이 기사의 주제입니다. 마이크로 인터랙션에서 어느 속성을 우선적으로 사용하는지, transition을 우선적으로 사용하는 것이 적절할까 생각합니다.
마이크로 인터랙션은 사용자 이벤트에 의해 발화되기 때문입니다. (특히 클릭)
animation(keyframes)은 함수형 언어와 같이 동일한 동작을 미리 정의하고 제어할 수 있지만 인수를 전달할 수 있는 것은 아닙니다. 사용자가 클릭한 좌표를 사용할 수 없습니다.
css
@keyframes move {
from {
transform: translate(0, 0);
}
to {
transform: translate(10px, 10px);
}
}
이것은 반드시 10px씩 이동해 버린다. 사용자가 클릭한 좌표를 향한 동작을 애니메이션으로 만들 수 없습니다.
원래 문제점
마이크로 인터랙션 이벤트는 클릭이 많다고 생각합니다.
하지만 현재 css에는 click 의사 클래스가 없습니다.
postcss
postcss의 플러그인 안에 click 의사 클래스 추가 라는 것이 있었습니다만, 해결책은 되지 않을 것 같습니다.
js 파일을 생성하고 jQuery에서 toggle하는 것뿐이었습니다.
Reference
이 문제에 관하여(마이크로 상호작용을 위한 CSS 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kudo_kk/items/2a4b3fc004e2bdb0dbda텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)