css3transformstransitionsandanimations-110531163905-phpapp02

66
CSS3 Transforms, Transitions & Animations @yaili

Upload: tu-pham

Post on 28-Apr-2015

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: css3transformstransitionsandanimations-110531163905-phpapp02

CSS3 Transforms,Transitions & Animations

@yaili

Page 2: css3transformstransitionsandanimations-110531163905-phpapp02

2D Transforms

Page 3: css3transformstransitionsandanimations-110531163905-phpapp02

“CSS 2D Transforms allows elements rendered by CSS to be transformed in two-dimensional space.”

—W3C, http://www.w3.org/TR/css3-2d-transforms/

Page 4: css3transformstransitionsandanimations-110531163905-phpapp02

#flower  {   background:  url(flower-­‐1.png);   width:  300px;   height:  300px;  }

#flower:hover  {   transform:  translateX(600px);  }

Page 5: css3transformstransitionsandanimations-110531163905-phpapp02
Page 6: css3transformstransitionsandanimations-110531163905-phpapp02

translate,  translateX,  translateY

scale,  scaleX,  scaleY

rotate

skew,  skewX,  skewY

matrix

Page 7: css3transformstransitionsandanimations-110531163905-phpapp02

#flower:hover  {   transform:  translate(600px,  -­‐50px)  scale(1.5)  ➥rotate(15deg)  skew(15deg);  }

Page 8: css3transformstransitionsandanimations-110531163905-phpapp02
Page 9: css3transformstransitionsandanimations-110531163905-phpapp02

#flower:hover  {     transform:  translate(600px,  -­‐50px)  scale(1.5)  ➥  rotate(15deg)  skew(15deg);   transform-­‐origin:  0  0;  }

Page 10: css3transformstransitionsandanimations-110531163905-phpapp02
Page 11: css3transformstransitionsandanimations-110531163905-phpapp02

3D Transforms

Page 12: css3transformstransitionsandanimations-110531163905-phpapp02

scale  →  scale3d

scaleX

scaleY

scaleZ

Page 13: css3transformstransitionsandanimations-110531163905-phpapp02

translate  →  translate3d

rotate  →  rotate3d

matrix  →  matrix3d

Page 14: css3transformstransitionsandanimations-110531163905-phpapp02

perspective-­‐origin

Page 15: css3transformstransitionsandanimations-110531163905-phpapp02

backface-­‐visibility

Page 16: css3transformstransitionsandanimations-110531163905-phpapp02

body  {   perspective:  1000;   perspective-­‐origin:  50%  100%;  }

#kitten  {   margin:  auto;   display:  block;  }

#kitten:hover  {     transform:  rotateY(-­‐25deg);  }

Page 17: css3transformstransitionsandanimations-110531163905-phpapp02
Page 18: css3transformstransitionsandanimations-110531163905-phpapp02

#level1  {   background:  url(kitten.jpg)  no-­‐repeat;   width:  500px;   height:  333px;   transform:  rotateY(-­‐25deg);     transform-­‐style:  preserve-­‐3d;  }

Page 19: css3transformstransitionsandanimations-110531163905-phpapp02

#level2  {   border:  5px  solid  red;   width:  200px;   height:  200px;   transform:  translateZ(50px);  }

#level3  {   background:  pink;   width:  150px;   height:  150px;   top:  -­‐20px;   position:  relative;   transform:  translateZ(40px);  }

Page 20: css3transformstransitionsandanimations-110531163905-phpapp02
Page 21: css3transformstransitionsandanimations-110531163905-phpapp02

Transitions

Page 22: css3transformstransitionsandanimations-110531163905-phpapp02

#flower  {   background:  url(flower-­‐1.png);   width:  300px;   height:  300px;  }

#flower:hover  {   transform:  translateX(600px);  }

Page 23: css3transformstransitionsandanimations-110531163905-phpapp02

#flower  {   background:  url(flower-­‐1.png);   width:  300px;   height:  300px;   transition-­‐property:  transform;     transition-­‐duration:  1.5s;   transition-­‐delay:  .1s;     transition-­‐timing-­‐function:  ease-­‐in;  }

#flower:hover  {     transform:  translateX(600px);  }

Page 24: css3transformstransitionsandanimations-110531163905-phpapp02

#flower  {   background:  url(flower-­‐1.png);   width:  300px;   height:  300px;     transition:  all  1.5s  ease-­‐in  .1s;  }

Page 25: css3transformstransitionsandanimations-110531163905-phpapp02

Animations

Page 26: css3transformstransitionsandanimations-110531163905-phpapp02

“CSS Animations allow an author to modify CSS property values over time.”

—W3C, http://www.w3.org/TR/css3-animations/

Page 27: css3transformstransitionsandanimations-110531163905-phpapp02

@keyframes  sky  {   0%  {  background-­‐color:  #daf2f4;  }   50%  {  background-­‐color:  #f7d518;  }   100%  {  background-­‐color:  #f5700d;  }}

Page 28: css3transformstransitionsandanimations-110531163905-phpapp02

#box  {   animation-­‐name:  sky;   animation-­‐duration:  5s;   animation-­‐timing-­‐function:  linear;   animation-­‐iteration-­‐count:  infinite;   animation-­‐direction:  alternate;  }

Page 29: css3transformstransitionsandanimations-110531163905-phpapp02

#box  {   animation:  sky  10s  linear  infinite  alternate;  }

Page 30: css3transformstransitionsandanimations-110531163905-phpapp02
Page 31: css3transformstransitionsandanimations-110531163905-phpapp02

@keyframes  spin  {   0%  {     transform:  rotate(0deg);  }   100%  {     transform:  rotate(180deg);  }}

Page 32: css3transformstransitionsandanimations-110531163905-phpapp02

#flower-­‐1,#flower-­‐2,#flower-­‐3  {   animation:  spin  .7s  linear  infinite;  }

Page 33: css3transformstransitionsandanimations-110531163905-phpapp02
Page 34: css3transformstransitionsandanimations-110531163905-phpapp02

Vendor Prefixes

Page 35: css3transformstransitionsandanimations-110531163905-phpapp02

#flower:hover  {     transform:  translateX(600px);  }

Page 36: css3transformstransitionsandanimations-110531163905-phpapp02

#flower:hover  {   -­‐moz-­‐transform:  translateX(600px);   -­‐ms-­‐transform:  translateX(600px);   -­‐o-­‐transform:  translateX(600px);   -­‐webkit-­‐transform:  translateX(600px);   transform:  translateX(600px);  }

Page 37: css3transformstransitionsandanimations-110531163905-phpapp02

“Comparison of layout engines”http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(Cascading_Style_Sheets)

Page 39: css3transformstransitionsandanimations-110531163905-phpapp02

Dynamic CSS

Page 40: css3transformstransitionsandanimations-110531163905-phpapp02

LESS & Sass

Page 41: css3transformstransitionsandanimations-110531163905-phpapp02

.borders  {   border:  1px  solid  black;   border-­‐radius:  4px;  }

.box  {   background:  red;   .borders;  }

.box  {   background:  red;   border:  1px  solid  black;   border-­‐radius:  4px;  }

=

Page 42: css3transformstransitionsandanimations-110531163905-phpapp02

.translateX  (@valueX:"")  {   -­‐moz-­‐transform:  translateX(@valueX);   -­‐ms-­‐transform:  translateX(@valueX);   -­‐o-­‐transform:  translateX(@valueX);   -­‐webkit-­‐transform:  translateX(@valueX);   transform:  translateX(@valueX);  }

#flower:hover  {     .translateX(600px);  }

Page 43: css3transformstransitionsandanimations-110531163905-phpapp02

.transition  (@property:"",  @duration:"",  @delay:"",  @timing:"")  {   -­‐moz-­‐transition-­‐property:  @property;   -­‐o-­‐transition-­‐property:  @property;   -­‐webkit-­‐transition-­‐property:  @property;   transition-­‐property:  @property;     -­‐moz-­‐transition-­‐duration:  @duration;   -­‐o-­‐transition-­‐duration:  @duration;   -­‐webkit-­‐transition-­‐duration:  @duration;   transition-­‐duration:  @duration;     -­‐moz-­‐transition-­‐delay:  @delay;   -­‐o-­‐transition-­‐delay:  @delay;   -­‐webkit-­‐transition-­‐delay:  @delay;   transition-­‐delay:  @delay;     -­‐moz-­‐transition-­‐timing-­‐function:  @timing;   -­‐o-­‐transition-­‐timing-­‐function:  @timing;   -­‐webkit-­‐transition-­‐timing-­‐function:  @timing;   transition-­‐timing-­‐function:  @timing;  }

Page 44: css3transformstransitionsandanimations-110531163905-phpapp02

#flower  {   .transition(transform,  1.5s,  .1s,  ease-­‐in);  }

Page 45: css3transformstransitionsandanimations-110531163905-phpapp02

“Pro CSS for High Traffic Websites”

by Antony Kennedy & Inayaili de León

procssforhightrafficwebsites.com

Page 46: css3transformstransitionsandanimations-110531163905-phpapp02

Resources

Page 47: css3transformstransitionsandanimations-110531163905-phpapp02

“CSS3 for Web Designers”, by Dan Cederholmhttp://www.abookapart.com/products/css3-for-web-designers

Page 48: css3transformstransitionsandanimations-110531163905-phpapp02

“Hardboiled Web Design”, by Andy Clarkehttp://fivesimplesteps.com/books/hardboiled-web-design

Page 52: css3transformstransitionsandanimations-110531163905-phpapp02

Considerations

Page 53: css3transformstransitionsandanimations-110531163905-phpapp02

FIREFOXIE WEBKIT OPERA

2D Transforms

3D Transforms

Transitions

Animations

IE 9 Firefox 3.5 Opera 10.5

IE 10

IE 10 Firefox 4 Opera 10.5

Firefox 5

Page 54: css3transformstransitionsandanimations-110531163905-phpapp02
Page 55: css3transformstransitionsandanimations-110531163905-phpapp02
Page 56: css3transformstransitionsandanimations-110531163905-phpapp02

Final thoughts

Page 60: css3transformstransitionsandanimations-110531163905-phpapp02

Just because you can, doesn’t mean you should.

Page 62: css3transformstransitionsandanimations-110531163905-phpapp02

“The Illusion of Life: Disney Animation”

by Ollie Johnston & Frank Thomas

Page 63: css3transformstransitionsandanimations-110531163905-phpapp02

“Anything composed of living flesh, no matter how bony, will show considerable movement within its shape in progressing through action.”

—Ollie Johnston & Frank Thomas, “The Illusion of Life: Disney Animation”

Page 64: css3transformstransitionsandanimations-110531163905-phpapp02

“If the character has any appendages, such as long ears or a tail or a big coat, these parts continue to move a"er the rest of the figure has stopped.”

—Ollie Johnston & Frank Thomas, “The Illusion of Life: Disney Animation”

Page 65: css3transformstransitionsandanimations-110531163905-phpapp02
Page 66: css3transformstransitionsandanimations-110531163905-phpapp02

Thank You!@yaili