5. project 필터링에 transition 효과 넣기
상황
이전의 챕터에서 각 버튼을 누르면 필터링이 되면서 프로젝트를 보여줄 수 있게 만들었다. 다만 이렇게 하면 너무 딱딱하다... 애니메이션 효과를 더해주자.
문제
project
의 css
를 보면 아래와 같다.
display: none 이 사용됐다. 이 말은 즉.. transition 을 사용할 수 없다는 말이다!!!!
편법(?) 을 사용해 문제를 해결해보자.
아마 이건 편법이 아니라 보통 이렇게 할 거 같지만, 일단 여기서 말하는 편법이란, project 를 담고있는 컨테이너에 transition 이벤트를 거는것!!! ㅋㅋㅋ 간단하고 너무 좋아진다. 자 바로 해보자
어떤 효과를 줄 것인가?
필터링 버튼을 눌렀을 때 기존에 있던 프로젝트들이 사라지면서, 새롭게 나오는(?) 그런 느낌을 줄 수 있게 만들자.
해결
CSS
ani-out
이라는 클래스 속성을 만들었다. 해당 클래스 속성은 아래와 같은 css 가 적용된다.
ani-out
이라는 클래스가 적용되면 프로젝트 컨테이너는 투명해지면서 80% 사이즈가 되고 아래로 40px 내려가게 된다.
이제 work__projects
에 트랜지션을 추가해주자.
예상치 못한 문제 문제
이렇게 html 의 class 를 추가하는 방법으로 하면 엄청난 문제가 있다. 한번 버튼을 누르는 순간부터 그냥 모든 프로젝트들이 invisible
되면서 보이지 않게 되는 것.
따라서 일정 시간이 지난 후에 ani-out 이라는 클래스 속성을 제거해줘야한다.
이럴 때 사용할 수 있는게 바로 setTimeout() 메서드다 이 함수를 사용하면 특정 시간후에 등록된 콜백함수를 호출할 수 있게 된다.
Last updated