애니메이션은 디스플레이에서 요소가 표시 될 때 항상 재생됩니다. 스타일에 맞춤 체크 박스를 원하면. 사용자가 확인하거나 선택을 취소 할 때만 애니메이션을 재생하면됩니다.그 방법으로 css3 애니메이션을 건너 뛸 수 있습니까?
input[type=checkbox] { opacity: 0; } // native checkbox hidden
input[type=checkbox] ~ .mycheck {
animation: uncheck 300ms ease-out forwards; // play uncheck animate
}
input[type=checkbox]:checked ~ .mycheck {
animation: check 300ms ease-out forwards; // play checked animate
}
문제는 사용자가이를 클릭하면 check
및 uncheck
은 재생되지 않습니다. 페이지가로드 될 때도 재생됩니다. 또는 부모 요소가 표시로 숨겨져있을 때 예 : 부트 스트랩 탭에 있습니다.
나는 자바 스크립트가 쉽게 처리 할 수 있다는 것을 알고있다. 그러나 실제로이 문제는 관심 github 프로젝트 https://github.com/FezVrasta/bootstrap-material-design/issues/48에서 온 것입니다. 그 잘 생긴 소년 bootstrap3에 의해 Google 소재 디자인을 구현합니다.
현재 나는 (완벽하지는 않다) 방법을 생각할 수 있습니다. :not(:hover)
을 animation-duration: 1ms;
으로 설정하십시오. 애니메이션이 빨리 종료되도록하십시오. 그러나 사용자는 여전히 짧은 플리커를 보입니다.
input[type=checkbox]:not(:hover) ~ .mycheck {
animation-duration: 1ms;
}
0ms로 설정할 수 없습니다. 그렇지 않으면 사용자가 마우스를 올릴 때까지 애니메이션이 재생되지 않습니다.
더 좋은 방법이 있습니까?
네가 맞습니다. 그 효과는 전환하기가 어렵습니다. 여기 구글 공식 (어쩌면) 레포입니다. 그들은와 같은 애니메이션을 사용합니다. 당신의 코드'animation : none;'이 더 나은 선택입니다. 감사. –
colder
'animation : none;'다른 문제를 만드십시오. 마우스를 움직일 때의 애니메이션 ... – colder
맞아, 이건 그냥 문제를 바꾼다. (내 지식에 따르면, CSS는 클릭을 직접 처리 할 방법이 없지만': hover' ': focus'를 사용하면 체크 박스를 가리키고 포커스를 주었을 때만 애니메이션이 활성화됩니다. 내가 말하는 것에 대한 아이디어를 줄 때 내 대답을 편집 할 것입니다. –