SlideShare a Scribd company logo
1 of 53
CSS Animation
-적용 방법과 활용-
13년 5월 16일 목요일
(현) 미래웹 기술 연구소 선임 연구원
Web Frontend Developer
UI 개발 및 ExtJS, SenchaTouch 연구 개발..
발표자 - 김양귀
13년 5월 16일 목요일
목차
CSS 속성
만드는 방법
Tip!
CSS Animation
13년 5월 16일 목요일
CSS Animation ?
13년 5월 16일 목요일
CSS 속성으로 만든 Animation
13년 5월 16일 목요일
Animation?
예제로 살펴보자!
Animated Menus
Animated Tabs
13년 5월 16일 목요일
CSS 외에 다른 Animation 웹기술?
13년 5월 16일 목요일
Canvas
SVG
WebGL
Javascript
Silverlight
Flash
CSS 외에 다른 Animation 웹기술?
13년 5월 16일 목요일
CSS Animation 의 특징
13년 5월 16일 목요일
순수 표준 웹 기술
HTML 친화적
CSS 수정만으로 적용가능!
구현 방법이 쉽다.
CSS Animation 의 특징
13년 5월 16일 목요일
CSS Animation 응용 사이트
13년 5월 16일 목요일
CSS Animation 응용 사이트
www.apple.com/iphone
www.designtheplanet.com
www.parc-amazonien-guyane.fr/
13년 5월 16일 목요일
CSS 속성
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Transition
Animation
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Transition
2 State Animation
left: 0px left: 50px; rotate(45);
13년 5월 16일 목요일
Animation
Example - Transition
13년 5월 16일 목요일
Animation
Animation 을 만드는 CSS 속성
Transition
transition-delay
transition-duration
transition-property
transition-timing-function
CSS Code
div#aniBox {
}
: 0.5s;
: 2s;
: transform;
: ease;
transition : transform 2s ease 1s;
div#aniBox {
}
2 State Animation
https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_transitions자세한 내용은 여기서!
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Transition
2 State Animation
timing-function : Animation 의 속도 변화를 결정!
linear ease ease-in ease-out
step-start
cubic-bezier(0.1, 0.7, 1.0, 0.1)
step-end steps(4, end)
ease-in-out
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Transition
2 State Animation
timing-function : Animation 의 속도 변화를 결정!
linear ease ease-in ease-out
아직 와닿지 않는다. 더 자세히 살펴보자!
http://cubic-bezier.com/
13년 5월 16일 목요일
Transition
Animation 을 만드는 CSS 속성
Animation
Multiple States
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Multiple States
Transition
from { top: 0; left: 0;}
CSS Code
@keyframes
}
moveBox {
25% { top: 200px; left: 0; }
50% { top: 200px; left: 200px; }
75% { top: 0; left: 200px;}
to { left: 500px; top: 400px;}
13년 5월 16일 목요일
Transition
Animation 을 만드는 CSS 속성
Animation
Multiple States
CSS Code
animation-name
animation-duration
animation-timing-function
animation-delay
div#aniBox {
}
: moveBox;
: 4s;
: linear;
: 0.5s;
animation-iteration-count
animation-direction
: infinite;
: normal;
from { top: 0; left: 0;}
@keyframes
25% { top: 200px; left: 0; }
50% { top: 200px; left: 200px; }
75% { top: 0; left: 200px;}
to { left: 500px; top: 400px;}
moveBox {
}
animation
div#aniBox {
: moveBox 4s linear 0.5s infinite
}
https://developer.mozilla.org/ko/docs/CSS/Using_CSS_animations자세한 내용은 여기서!
13년 5월 16일 목요일
Transition
Animation 을 만드는 CSS 속성
Animation
Multiple States
animation-direction : Animation 재생 방향을 결정
예제로 살펴보자!
http://jsbin.com/ehicim/17/edit
13년 5월 16일 목요일
Example - Animation
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Transition
Animation
Browser Support
출처 : http://caniuse.com
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Browser Support
출처 : http://caniuse.com
13년 5월 16일 목요일
CSS Animation 에 자주 사용되는 속성
13년 5월 16일 목요일
CSS Animation 에 자주 사용되는 속성
Transform
left & top
width & height
opacity
13년 5월 16일 목요일
CSS Animation 에 자주 사용되는 속성
translate
scale
rotate
skew
Transform
13년 5월 16일 목요일
CSS Animation 에 자주 사용되는 속성
matrix
transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)
transform: matrix3d(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 8.0, 7.0, 3.0, 4.0, 8.0, 9.0, 3.0)
translate
transform: translate(12px, 50%)
transform: translateX(2em)
transform: translateY(3in)
transform: translate3d(12px, 50%, 3em)
transform: translateZ(2px)
scale
transform: scale(2, 0.5)
transform: scaleX(2)
transform: scaleY(0.5)
transform: scale3d(2.5, 1.2, 0.3)
transform: scaleZ(0.3)
rotate
transform: rotate(0.5turn)
transform: rotate3d(1, 2.0, 3.0, 10deg)
transform: rotateX(10deg)
transform: rotateY(10deg)
transform: rotateZ(10deg)
skew
transform: skewX(30deg)
transform: skewY(1.07rad)
https://developer.mozilla.org/ko/docs/CSS/transform
Transform
자세한 내용은 여기서!
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Browser Support - Transform
출처 : http://caniuse.com
Transform
13년 5월 16일 목요일
Animation 을 만드는 CSS 속성
Animation
Browser Support - 3D Transform
출처 : http://caniuse.com
Transform
13년 5월 16일 목요일
Transform 을 활용한 예제
13년 5월 16일 목요일
Transform 을 활용한 예제
Clock
Flipboard Page
3D Gallery
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
Only CSS with Javascript
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
가상 클래스(pseudo-classes) 활용
background-color: blue;
.myButton :hover {
}
.myButton :active {
}
transform: scale(0.8, 0.8);
.myButton {
background-color: skyblue;
}
transition: background 0.5s transform 0.5s;
example-button
Only CSS with Javascript
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
요소가 렌더링된 후 바로 재생
animation: bounce 1.5s infinite alternate;
.bounce {
}
@keyframes bounce {
}
from { top: 400px; }
example-bounce
to { top: 100px; }
...
Only CSS with Javascript
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
장점
CSS 만으로 깔끔하게 정리
단점
가상클래스의 한계 (일부 요소에만 적용 가능)
다양한 사용자의 이벤트에 대응 불가
Only CSS with Javascript
적용대상
발생 가능한 이벤트가 간단한 요소
정해진 규칙대로 재생되는 애니메이션
쉽다!
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
Only CSS with Javascript
CSS Class 조작
$(‘#moveButton’).click(function() {
$(‘#aniBox’).addClass(‘move’);
});
@keyframes moveBox {
....
}
#aniBox.move {
animation: moveBox 4s;
}
example-MoveBox
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
Only CSS with Javascript
Inline style 조작
$(‘#title’).css({
transition: ‘opacity 1s‘
opacity: 1
});
#title {
opacity: 0;
}
example-TitleFadeInOut
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
Only CSS with Javascript
다양한 Animation Event 활용
animationstart
animationend
animationiteration
transitionend
https://developer.mozilla.org/ko/docs/DOM/AnimationEvent
자세한 내용은 여기서!
https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/transitionend
13년 5월 16일 목요일
CSS Animation 을 만드는 방법
Only CSS with Javascript
장점
다양한 사용자 이벤트에 대한 처리 가능
단점
CSS 와의 애매한 분리
적용대상
다양한 사용자 이벤트에 반응해야 하는 UI Component
복잡한 애니메이션 적용 가능
다소 복잡한 애니메이션
13년 5월 16일 목요일
나의 경험에서 우려내는 Tip!
13년 5월 16일 목요일
성능 개선 작업 편의성 브라우저 호환
나의 경험에서 우려내는 Tip!
13년 5월 16일 목요일
나의 경험에서 우려내는 Tip!
타겟 브라우저의 하드웨어 가속 지원 요소를 반드시 확인!
같은 역할은 하는 요소간 성능 비교
동시에 재생되는 Animation 수
요소의 컨텐츠 양 (이미지, 텍스트)
Effect 가 많이 적용된 요소
성능 저하 유발 요인
성능 향상을 위한 준비 작업
애니메이션 시나리오 확인
성능 개선 작업 편의성 브라우저 호환
13년 5월 16일 목요일
나의 경험에서 우려내는 Tip!
자주 사용되는 Animation 패턴 메서드화
Animation Lock 기능
Animation Event 처리 기능
Vendor prefix 자동 추가 기능
대상 Element 에 inline 스타일을 적용 기능
Animation Helper API 를 사용하자
이외 필요한 여러가지 기능들..
성능 개선 작업 편의성 브라우저 호환
Transit (jQuery PlugIn)참고
13년 5월 16일 목요일
나의 경험에서 우려내는 Tip!
성능 개선 작업 편의성 브라우저 호환
다양한 툴을 이용하자!
http://cubic-bezier.com/
http://leaverou.github.io/animatable/
http://leaverou.github.io/prefixfree/
http://prefixmycss.com/
http://lab.hakim.se/scroll-effects/
http://daneden.me/animate/
http://easings.net/
13년 5월 16일 목요일
나의 경험에서 우려내는 Tip!
Javascirpt Animation 으로대체
성능 개선 작업 편의성 브라우저 호환
Animation 속성을 지원하지 않을 때
Animation 속성별로 성능 차이가 날 때
Animation 대신 일반 CSS 적용
Animation 차별화
13년 5월 16일 목요일
정리
13년 5월 16일 목요일
정리
CSS Animation
transition, animation 속성으로 만든 animation
CSS 속성
translate, keyframes, animation, transform, opacity ...
만드는 방법
OnlyCSS - 가상 선택자 활용, 요소 렌더링 후 바로 적용
Javascript 활용 - CSS Class 변경, inline 스타일 변경
Tip!
성능 고려!
작업 능률!
브라우저 호환!
13년 5월 16일 목요일
- Q&A -
감사합니다 !!
김양귀
email : yanggui@w3labs.kr
tweeter : @kingearlast
13년 5월 16일 목요일

More Related Content

What's hot

JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJS
NAVER D2
 
비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료
지수 윤
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기
NAVER D2
 

What's hot (20)

Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
크로스브라우징
크로스브라우징크로스브라우징
크로스브라우징
 
웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁웹-프론트엔드 프레임워크를 고르기 위한 팁
웹-프론트엔드 프레임워크를 고르기 위한 팁
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
Next Javascript ES2015 시작하기
Next Javascript ES2015 시작하기Next Javascript ES2015 시작하기
Next Javascript ES2015 시작하기
 
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
미래웹기술연구소는 왜 Sencha 를 채택하였는가?미래웹기술연구소는 왜 Sencha 를 채택하였는가?
미래웹기술연구소는 왜 Sencha 를 채택하였는가?
 
JavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJSJavaScript로 오픈소스를 해보자. bsJS
JavaScript로 오픈소스를 해보자. bsJS
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍
 
비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료비동기와 이벤트큐 수업자료
비동기와 이벤트큐 수업자료
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js
 
웹 디자이너의 도전: Vue.js 따라하기
웹 디자이너의 도전: Vue.js 따라하기웹 디자이너의 도전: Vue.js 따라하기
웹 디자이너의 도전: Vue.js 따라하기
 
How_to_choose_the_right_framework
How_to_choose_the_right_frameworkHow_to_choose_the_right_framework
How_to_choose_the_right_framework
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
 
개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기개발자를 위한 웹표준 & 웹접근성이야기
개발자를 위한 웹표준 & 웹접근성이야기
 
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
NAVER 오픈세미나 대구 (2014.08.01) - 오픈소스 라이브러리를 활용한 네이티브 어플리케이션의 데이터 저장과 통신
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
 
PHP Slim Framework with Angular
PHP Slim Framework with AngularPHP Slim Framework with Angular
PHP Slim Framework with Angular
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초
 

Viewers also liked

모바일 무한 스크롤 개발
모바일 무한 스크롤 개발모바일 무한 스크롤 개발
모바일 무한 스크롤 개발
NAVER D2
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
PCG Solution
 
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
NAVER D2
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523
NAVER D2
 

Viewers also liked (20)

웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
ES2015 훑어보기 for Django Girls Seoul
ES2015 훑어보기 for Django Girls SeoulES2015 훑어보기 for Django Girls Seoul
ES2015 훑어보기 for Django Girls Seoul
 
Es2015 Simple Overview
Es2015 Simple OverviewEs2015 Simple Overview
Es2015 Simple Overview
 
정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리정오의 데이트 for iOS 코드 정리
정오의 데이트 for iOS 코드 정리
 
git-faker 개발기
git-faker 개발기git-faker 개발기
git-faker 개발기
 
프론트엔드 애니메이션의 정수
프론트엔드 애니메이션의 정수프론트엔드 애니메이션의 정수
프론트엔드 애니메이션의 정수
 
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing EraECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
 
Do you Promise?
Do you Promise?Do you Promise?
Do you Promise?
 
모바일 무한 스크롤 개발
모바일 무한 스크롤 개발모바일 무한 스크롤 개발
모바일 무한 스크롤 개발
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
 
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
W3C HTML5 Conference 2015 - NAVER 웹 기술 및 환경 전망
 
Resource Handling in Spring MVC
Resource Handling in Spring MVCResource Handling in Spring MVC
Resource Handling in Spring MVC
 
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권[D2 오픈세미나]5.html5 api 테트리스게임_이진권
[D2 오픈세미나]5.html5 api 테트리스게임_이진권
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523[D2 오픈세미나]2.browser engine 이형욱_20140523
[D2 오픈세미나]2.browser engine 이형욱_20140523
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
Arcus
ArcusArcus
Arcus
 
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강 [토크아이티] 프런트엔드 개발 시작하기 저자 특강
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
 

Similar to [별천지 세미나] CSS3 Animation

CSS3 Top10
CSS3 Top10CSS3 Top10
CSS3 Top10
Toby Yun
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
yongwoo Jeon
 
Html5 소개 가이드
Html5 소개 가이드Html5 소개 가이드
Html5 소개 가이드
Jong-hyun Park
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
Michael Yang
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010
Joone Hur
 

Similar to [별천지 세미나] CSS3 Animation (20)

2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드2017. 프론트엔드 트랜드
2017. 프론트엔드 트랜드
 
반응형 웹 디자인
반응형 웹 디자인반응형 웹 디자인
반응형 웹 디자인
 
CSS3 Top10
CSS3 Top10CSS3 Top10
CSS3 Top10
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5오늘 당장 시작하는 HTML5
오늘 당장 시작하는 HTML5
 
모바일환경과 개발방향
모바일환경과 개발방향 모바일환경과 개발방향
모바일환경과 개발방향
 
[122]책에서는 맛볼 수 없는 HTML5 Canvas 이야기
[122]책에서는 맛볼 수 없는 HTML5 Canvas 이야기 [122]책에서는 맛볼 수 없는 HTML5 Canvas 이야기
[122]책에서는 맛볼 수 없는 HTML5 Canvas 이야기
 
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
NAVER TECH CONCERT_FE2019_빠르게 훑어보는 웹 개발 트렌드
 
Web_05_ jQuery
Web_05_ jQueryWeb_05_ jQuery
Web_05_ jQuery
 
[WEB UI BASIC] WEB Animation 2탄
[WEB UI BASIC] WEB Animation 2탄[WEB UI BASIC] WEB Animation 2탄
[WEB UI BASIC] WEB Animation 2탄
 
Html5 소개 가이드
Html5 소개 가이드Html5 소개 가이드
Html5 소개 가이드
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
 
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
[Tech meet up] 2018 프론트엔드 트렌드&인사이트[Tech meet up] 2018 프론트엔드 트렌드&인사이트
[Tech meet up] 2018 프론트엔드 트렌드&인사이트
 
Adobe Dreamweaver CS5.5 를 이용한 HTML5 개발
Adobe Dreamweaver CS5.5 를 이용한 HTML5 개발Adobe Dreamweaver CS5.5 를 이용한 HTML5 개발
Adobe Dreamweaver CS5.5 를 이용한 HTML5 개발
 
Web assembly 맛보기
Web assembly 맛보기Web assembly 맛보기
Web assembly 맛보기
 
조은 - AMP PWA 101 [WSConf.Seoul.2017. Vol.2]
조은 - AMP PWA 101 [WSConf.Seoul.2017. Vol.2]조은 - AMP PWA 101 [WSConf.Seoul.2017. Vol.2]
조은 - AMP PWA 101 [WSConf.Seoul.2017. Vol.2]
 
191011 SVG를 배경이미지로 활용한 아이콘 삽질기 - 코인원 오혜진 (W3C HTML5 Conference)
191011 SVG를 배경이미지로 활용한 아이콘 삽질기 - 코인원 오혜진 (W3C HTML5 Conference)191011 SVG를 배경이미지로 활용한 아이콘 삽질기 - 코인원 오혜진 (W3C HTML5 Conference)
191011 SVG를 배경이미지로 활용한 아이콘 삽질기 - 코인원 오혜진 (W3C HTML5 Conference)
 
WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010WebKit at the Future Web Forum 2010
WebKit at the Future Web Forum 2010
 

[별천지 세미나] CSS3 Animation

  • 1. CSS Animation -적용 방법과 활용- 13년 5월 16일 목요일
  • 2. (현) 미래웹 기술 연구소 선임 연구원 Web Frontend Developer UI 개발 및 ExtJS, SenchaTouch 연구 개발.. 발표자 - 김양귀 13년 5월 16일 목요일
  • 3. 목차 CSS 속성 만드는 방법 Tip! CSS Animation 13년 5월 16일 목요일
  • 4. CSS Animation ? 13년 5월 16일 목요일
  • 5. CSS 속성으로 만든 Animation 13년 5월 16일 목요일
  • 7. CSS 외에 다른 Animation 웹기술? 13년 5월 16일 목요일
  • 8. Canvas SVG WebGL Javascript Silverlight Flash CSS 외에 다른 Animation 웹기술? 13년 5월 16일 목요일
  • 9. CSS Animation 의 특징 13년 5월 16일 목요일
  • 10. 순수 표준 웹 기술 HTML 친화적 CSS 수정만으로 적용가능! 구현 방법이 쉽다. CSS Animation 의 특징 13년 5월 16일 목요일
  • 11. CSS Animation 응용 사이트 13년 5월 16일 목요일
  • 12. CSS Animation 응용 사이트 www.apple.com/iphone www.designtheplanet.com www.parc-amazonien-guyane.fr/ 13년 5월 16일 목요일
  • 13. CSS 속성 13년 5월 16일 목요일
  • 14. Animation 을 만드는 CSS 속성 13년 5월 16일 목요일
  • 15. Animation 을 만드는 CSS 속성 Transition Animation 13년 5월 16일 목요일
  • 16. Animation 을 만드는 CSS 속성 Animation Transition 2 State Animation left: 0px left: 50px; rotate(45); 13년 5월 16일 목요일
  • 17. Animation Example - Transition 13년 5월 16일 목요일
  • 18. Animation Animation 을 만드는 CSS 속성 Transition transition-delay transition-duration transition-property transition-timing-function CSS Code div#aniBox { } : 0.5s; : 2s; : transform; : ease; transition : transform 2s ease 1s; div#aniBox { } 2 State Animation https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_transitions자세한 내용은 여기서! 13년 5월 16일 목요일
  • 19. Animation 을 만드는 CSS 속성 Animation Transition 2 State Animation timing-function : Animation 의 속도 변화를 결정! linear ease ease-in ease-out step-start cubic-bezier(0.1, 0.7, 1.0, 0.1) step-end steps(4, end) ease-in-out 13년 5월 16일 목요일
  • 20. Animation 을 만드는 CSS 속성 Animation Transition 2 State Animation timing-function : Animation 의 속도 변화를 결정! linear ease ease-in ease-out 아직 와닿지 않는다. 더 자세히 살펴보자! http://cubic-bezier.com/ 13년 5월 16일 목요일
  • 21. Transition Animation 을 만드는 CSS 속성 Animation Multiple States 13년 5월 16일 목요일
  • 22. Animation 을 만드는 CSS 속성 Animation Multiple States Transition from { top: 0; left: 0;} CSS Code @keyframes } moveBox { 25% { top: 200px; left: 0; } 50% { top: 200px; left: 200px; } 75% { top: 0; left: 200px;} to { left: 500px; top: 400px;} 13년 5월 16일 목요일
  • 23. Transition Animation 을 만드는 CSS 속성 Animation Multiple States CSS Code animation-name animation-duration animation-timing-function animation-delay div#aniBox { } : moveBox; : 4s; : linear; : 0.5s; animation-iteration-count animation-direction : infinite; : normal; from { top: 0; left: 0;} @keyframes 25% { top: 200px; left: 0; } 50% { top: 200px; left: 200px; } 75% { top: 0; left: 200px;} to { left: 500px; top: 400px;} moveBox { } animation div#aniBox { : moveBox 4s linear 0.5s infinite } https://developer.mozilla.org/ko/docs/CSS/Using_CSS_animations자세한 내용은 여기서! 13년 5월 16일 목요일
  • 24. Transition Animation 을 만드는 CSS 속성 Animation Multiple States animation-direction : Animation 재생 방향을 결정 예제로 살펴보자! http://jsbin.com/ehicim/17/edit 13년 5월 16일 목요일
  • 25. Example - Animation 13년 5월 16일 목요일
  • 26. Animation 을 만드는 CSS 속성 Transition Animation Browser Support 출처 : http://caniuse.com 13년 5월 16일 목요일
  • 27. Animation 을 만드는 CSS 속성 Animation Browser Support 출처 : http://caniuse.com 13년 5월 16일 목요일
  • 28. CSS Animation 에 자주 사용되는 속성 13년 5월 16일 목요일
  • 29. CSS Animation 에 자주 사용되는 속성 Transform left & top width & height opacity 13년 5월 16일 목요일
  • 30. CSS Animation 에 자주 사용되는 속성 translate scale rotate skew Transform 13년 5월 16일 목요일
  • 31. CSS Animation 에 자주 사용되는 속성 matrix transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0) transform: matrix3d(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 8.0, 7.0, 3.0, 4.0, 8.0, 9.0, 3.0) translate transform: translate(12px, 50%) transform: translateX(2em) transform: translateY(3in) transform: translate3d(12px, 50%, 3em) transform: translateZ(2px) scale transform: scale(2, 0.5) transform: scaleX(2) transform: scaleY(0.5) transform: scale3d(2.5, 1.2, 0.3) transform: scaleZ(0.3) rotate transform: rotate(0.5turn) transform: rotate3d(1, 2.0, 3.0, 10deg) transform: rotateX(10deg) transform: rotateY(10deg) transform: rotateZ(10deg) skew transform: skewX(30deg) transform: skewY(1.07rad) https://developer.mozilla.org/ko/docs/CSS/transform Transform 자세한 내용은 여기서! 13년 5월 16일 목요일
  • 32. Animation 을 만드는 CSS 속성 Animation Browser Support - Transform 출처 : http://caniuse.com Transform 13년 5월 16일 목요일
  • 33. Animation 을 만드는 CSS 속성 Animation Browser Support - 3D Transform 출처 : http://caniuse.com Transform 13년 5월 16일 목요일
  • 34. Transform 을 활용한 예제 13년 5월 16일 목요일
  • 35. Transform 을 활용한 예제 Clock Flipboard Page 3D Gallery 13년 5월 16일 목요일
  • 36. CSS Animation 을 만드는 방법 13년 5월 16일 목요일
  • 37. CSS Animation 을 만드는 방법 Only CSS with Javascript 13년 5월 16일 목요일
  • 38. CSS Animation 을 만드는 방법 가상 클래스(pseudo-classes) 활용 background-color: blue; .myButton :hover { } .myButton :active { } transform: scale(0.8, 0.8); .myButton { background-color: skyblue; } transition: background 0.5s transform 0.5s; example-button Only CSS with Javascript 13년 5월 16일 목요일
  • 39. CSS Animation 을 만드는 방법 요소가 렌더링된 후 바로 재생 animation: bounce 1.5s infinite alternate; .bounce { } @keyframes bounce { } from { top: 400px; } example-bounce to { top: 100px; } ... Only CSS with Javascript 13년 5월 16일 목요일
  • 40. CSS Animation 을 만드는 방법 장점 CSS 만으로 깔끔하게 정리 단점 가상클래스의 한계 (일부 요소에만 적용 가능) 다양한 사용자의 이벤트에 대응 불가 Only CSS with Javascript 적용대상 발생 가능한 이벤트가 간단한 요소 정해진 규칙대로 재생되는 애니메이션 쉽다! 13년 5월 16일 목요일
  • 41. CSS Animation 을 만드는 방법 Only CSS with Javascript CSS Class 조작 $(‘#moveButton’).click(function() { $(‘#aniBox’).addClass(‘move’); }); @keyframes moveBox { .... } #aniBox.move { animation: moveBox 4s; } example-MoveBox 13년 5월 16일 목요일
  • 42. CSS Animation 을 만드는 방법 Only CSS with Javascript Inline style 조작 $(‘#title’).css({ transition: ‘opacity 1s‘ opacity: 1 }); #title { opacity: 0; } example-TitleFadeInOut 13년 5월 16일 목요일
  • 43. CSS Animation 을 만드는 방법 Only CSS with Javascript 다양한 Animation Event 활용 animationstart animationend animationiteration transitionend https://developer.mozilla.org/ko/docs/DOM/AnimationEvent 자세한 내용은 여기서! https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/transitionend 13년 5월 16일 목요일
  • 44. CSS Animation 을 만드는 방법 Only CSS with Javascript 장점 다양한 사용자 이벤트에 대한 처리 가능 단점 CSS 와의 애매한 분리 적용대상 다양한 사용자 이벤트에 반응해야 하는 UI Component 복잡한 애니메이션 적용 가능 다소 복잡한 애니메이션 13년 5월 16일 목요일
  • 45. 나의 경험에서 우려내는 Tip! 13년 5월 16일 목요일
  • 46. 성능 개선 작업 편의성 브라우저 호환 나의 경험에서 우려내는 Tip! 13년 5월 16일 목요일
  • 47. 나의 경험에서 우려내는 Tip! 타겟 브라우저의 하드웨어 가속 지원 요소를 반드시 확인! 같은 역할은 하는 요소간 성능 비교 동시에 재생되는 Animation 수 요소의 컨텐츠 양 (이미지, 텍스트) Effect 가 많이 적용된 요소 성능 저하 유발 요인 성능 향상을 위한 준비 작업 애니메이션 시나리오 확인 성능 개선 작업 편의성 브라우저 호환 13년 5월 16일 목요일
  • 48. 나의 경험에서 우려내는 Tip! 자주 사용되는 Animation 패턴 메서드화 Animation Lock 기능 Animation Event 처리 기능 Vendor prefix 자동 추가 기능 대상 Element 에 inline 스타일을 적용 기능 Animation Helper API 를 사용하자 이외 필요한 여러가지 기능들.. 성능 개선 작업 편의성 브라우저 호환 Transit (jQuery PlugIn)참고 13년 5월 16일 목요일
  • 49. 나의 경험에서 우려내는 Tip! 성능 개선 작업 편의성 브라우저 호환 다양한 툴을 이용하자! http://cubic-bezier.com/ http://leaverou.github.io/animatable/ http://leaverou.github.io/prefixfree/ http://prefixmycss.com/ http://lab.hakim.se/scroll-effects/ http://daneden.me/animate/ http://easings.net/ 13년 5월 16일 목요일
  • 50. 나의 경험에서 우려내는 Tip! Javascirpt Animation 으로대체 성능 개선 작업 편의성 브라우저 호환 Animation 속성을 지원하지 않을 때 Animation 속성별로 성능 차이가 날 때 Animation 대신 일반 CSS 적용 Animation 차별화 13년 5월 16일 목요일
  • 52. 정리 CSS Animation transition, animation 속성으로 만든 animation CSS 속성 translate, keyframes, animation, transform, opacity ... 만드는 방법 OnlyCSS - 가상 선택자 활용, 요소 렌더링 후 바로 적용 Javascript 활용 - CSS Class 변경, inline 스타일 변경 Tip! 성능 고려! 작업 능률! 브라우저 호환! 13년 5월 16일 목요일
  • 53. - Q&A - 감사합니다 !! 김양귀 email : yanggui@w3labs.kr tweeter : @kingearlast 13년 5월 16일 목요일