일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- hover
- 밀리초
- TRANSITION
- Position
- 이벤트 버블링
- EventListner
- bootstrap
- sass
- Carousel
- css animation
- val()
- setTimeout
- animate
- transform
- CSS
- navbar
- scss
- float : left
- absolute
- margin
- JQuery
- z-index
- display:none
- 레이아웃
- form
- togle
- position : fixed
- input
- vw
- css selector
- Today
- Total
Simple Is Best
10. [jQuery] Animation - 2 (애니메이션 제작 관습) 본문
안녕하세요! 이번 포스팅에서는 지난 포스팅에서 다루었던 animation 에 대해서 몇 가지 알고 넘어 가면 좋은 점들을 알아보도록 하겠습니다.
HTML/CSS 를 공부하면서 한창 애니메이션에 대해서 학습하였으니 아래 링크를 참고하고 오시면 본 포스팅을 더욱 잘 이해할 수 있으실 겁니다 ^^
https://daterminal.tistory.com/32
Animation 제작 원칙
애니메이션의 기본 제작 방식
1. 시작 화면 제작 (HTML/CSS) 2. 결과 화면 제작 (HTML/CSS) 3. 시작화면에서 결과화면에서 넘어가는 방아쇠 제작 (JavaScript/JQuery) |
바로 이전 포스팅에서 애니메이션을 공부할 때 jQuery 를 통해서 animation 을 주는 방법에 대해서 공부했었는데요.
사실 margin 등을 조정해서 애니메이션을 주는 것은 좋은 방법이 아닙니다.
margin, padding 등은 본래 사이트의 레이아웃을 조정하기 위해서 사용되는 속성들입니다.
[브라우저 렌더링 단계]
margin, padding 등의 레이아웃을 조정하는 요소들은 3번째 단계에 처리 됨을 확인 할 수 있습니다. 렌더링 시간이 오래걸린다는 의미입니다.
이를 활용하여 애니메이션을 조정하게 되면 속도가 느릴 뿐만 아니라 애니메이션이 버벅이게 됩니다.
그럼 도대체 어떻게 애니메이션을 개발하라는 말인가요?
[애니메이션을 적용할 때 알아두면 좋은 3가지]
1. margin 을 활용하지 말고 transform 속성을 활용
이전에 CSS animation 을 공부 할 때 transform 을 공부했었습니다.
transform 의 속성값은 크게 3가지가 있습니다.
transform : translateY( px); /*대상의 이동을 담당*/
transform : rotate( deg); /*대상의 회전을 담당*/
transform : scale(); /*대상의 스케일링(사이즈 변환)을 담당*/
2. JQuery의 animate 함수 대신 CSS transition을 활용
애니메이션의 기본 제작 방식
1. 시작 화면 제작 (HTML/CSS) 2. 결과 화면 제작 (HTML/CSS) 3. 시작화면에서 결과화면에서 넘어가는 방아쇠 제작 (JavaScript/JQuery) |
기존에는 3번째 단계에서 넘어가는 방아쇠 역할로 jQuery의 animate 메소드를 활용하였습니다.
하지만 CSS의 transition을 활용하면 더욱 빠른 애니메이션 효과를 기대 할 수 있습니다.
transition을 활용하는 방법은 이전 포스팅을 참고하시길 바랍니다!
transition : all 1s;
/*모든 요소들을 1초에 걸쳐서 서서히 변경해줘*/
3. .css를 쓰지 말고 .addClass를 활용
CSS를 공부할 때 class의 재활용의 중요성에 대해서 공부했었는데 애니메이션을 제작할 때 JQuery에서 .css를 사용하기 보다 미리 CSS 상에서 결과를 클래스상에서 구현 해 놓은 이후에 JQuery로 Class를 추가하는 것이 좋습니다.
.addClass <-> .removeClass
CSS
.login-ani{
transform:translateY(0px);
}
JQuery
$('#btn-click').on('click', function() {
$('.black-background').addClass('login-ani');
});
정리하자면 .addClass(good) .css(normal) .animate(bad)
'JavaScript & JQuery' 카테고리의 다른 글
12. [JS/JQuery] Carousel (이미지 슬라이더) (0) | 2021.07.30 |
---|---|
11. [JS/jQuery] 정규식으로 form 양식 검사하기 (0) | 2021.07.29 |
9. [jQuery] Animation - 1 (feat. navbar) (0) | 2021.07.29 |
8. [ES6] 변수 (0) | 2021.07.27 |
7.5. [jQuery] 다양한 이벤트 change, input (0) | 2021.07.27 |