CSS3 笔记四(Transforms/Transition/Animations)

CSS3 2D Transforms Methods

  • translate()
  • rotate()
  • scale()
  • skewX()
  • skewY()
  • matrix()

1> translate()

  • The translate() method moves an element from its current position (according to the parameters given for the X-axis and the Y-axis).

Translate

2> rotate()

  • The rotate() method rotates an element clockwise or counter-clockwise according to a given degree.

Rotate

Example

1 div {
2     -ms-transform: rotate(20deg); /* IE 9 */
3     -webkit-transform: rotate(20deg); /* Safari */
4     transform: rotate(20deg);
5 } 

3> scale()

  • The scale() method increases or decreases the size of an element (according to the parameters given for the width and height).

Scale

4> skewX(沿X轴形变)

  • The skewX() method skews an element along the X-axis by the given angle.

5> skewY(沿Y轴形变)

  • The skewY() method skews an element along the Y-axis by the given angle.

6> skew(沿X和Y轴形变)

  • The skew() method skews an element along the X and Y-axis by the given angles.

7> matrix()

  • The matrix() method combines all the 2D transform methods into one.

Example

1 div {
2     -ms-transform: matrix(1, -0.3, 0, 1, 0, 0); /* IE 9 */
3     -webkit-transform: matrix(1, -0.3, 0, 1, 0, 0); /* Safari */
4     transform: matrix(1, -0.3, 0, 1, 0, 0);
5 } 

CSS3 3D Transforms

  • rotateX()
  • rotateY()
  • rotateZ()

1> rotateX()

  • The rotateX() method rotates an element around its X-axis at a given degree.

Rotate X

2> rotateY()

  • The rotateY() method rotates an element around its Y-axis at a given degree.

Rotate Y

3> rotateZ()

  • The rotateZ() method rotates an element around its Z-axis at a given degree:

Example

1 div {
2     -webkit-transform: rotateZ(90deg); /* Safari */
3     transform: rotateZ(90deg);
4 } 

CSS3 Transitions

  • Specify the CSS property you want to add an effect to.
  • Specify the duration of the effect.

Note: If the duration part is not specified, the transition will have no effect, because the default value is 0.

syntax

transition: property duration timing-function delay|initial|inherit;

Example

1 input[type=text] {
2     width: 100px;
3     -webkit-transition: ease-in-out, width .35s ease-in-out; /* Safari 3.1 to 6.0 */
4     transition: width .35s ease-in-out;
5 }
6 
7 input[type=text]:focus {
8     width: 250px;
9 }

1> transition-property

  • Specify the name of the CSS property

syntax

transition-property: none|all|property|initial|inherit;

Example

1 div {
2     -webkit-transition-property: width, height; /* Safari */
3     transition-property: width, height;
4 }
5 
6 div:hover {
7     width: 300px;
8     height: 300px;
9 }

2> transition-duration

  • Specifies how many seconds (s) or milliseconds (ms) a transition effect takes to complete.

syntax

transition-duration: time|initial|inherit;

Example

1 div {
2     -webkit-transition-duration: 5s; /* Safari */
3     transition-duration: 5s;
4 }

3> transition-delay

  • The transition-delay property specifies when the transition effect will start.
  • The transition-delay value is defined in seconds (s) or milliseconds (ms).

syntax

transition-delay: time|initial|inherit;

Example

1 div {
2     -webkit-transition-delay: 2s; /* Safari */
3     transition-delay: 2s;
4 }

4> transition-timing-function

  • The transition-timing-function property specifies the speed curve of the transition effect.
  • This property allows a transition effect to change speed over its duration.

syntax

transition-timing-function: ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|initial|inherit;
ValueDescription
ease Default value. Specifies a transition effect with a slow start, then fast, then end slowly (equivalent to cubic-bezier(0.25,0.1,0.25,1))
linear Specifies a transition effect with the same speed from start to end (equivalent to cubic-bezier(0,0,1,1))
ease-in Specifies a transition effect with a slow start (equivalent to cubic-bezier(0.42,0,1,1))
ease-out Specifies a transition effect with a slow end (equivalent to cubic-bezier(0,0,0.58,1))
ease-in-out Specifies a transition effect with a slow start and end (equivalent to cubic-bezier(0.42,0,0.58,1))
cubic-bezier(n,n,n,n) Define your own values in the cubic-bezier function. Possible values are numeric values from 0 to 1
initial Sets this property to its default value.
inherit Inherits this property from its parent element.

Example

 1 /* For Safari 3.1 to 6.0 */
 2 #div1 {-webkit-transition-timing-function: linear;}
 3 #div2 {-webkit-transition-timing-function: ease;}
 4 #div3 {-webkit-transition-timing-function: ease-in;}
 5 #div4 {-webkit-transition-timing-function: ease-out;}
 6 #div5 {-webkit-transition-timing-function: ease-in-out;}
 7 
 8 /* Standard syntax */
 9 #div1 {transition-timing-function: linear;}
10 #div2 {transition-timing-function: ease;}
11 #div3 {transition-timing-function: ease-in;}
12 #div4 {transition-timing-function: ease-out;}
13 #div5 {transition-timing-function: ease-in-out;}

CSS3 Animations

1> animation

syntax

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

Example

1 div {
2     -webkit-animation: mymove 5s infinite; /* Chrome, Safari, Opera */
3     animation: mymove 5s infinite;
4 } 

2> animation-name

  • The animation-name property specifies a name for the @keyframes animation.

syntax

animation-name: keyframename|none|initial|inherit;

Example

 1 /* The animation code */
 2 @keyframes mymove {
 3     from {background-color: red;}
 4     to {background-color: yellow;}
 5 }
 6 
 7 /* The element to apply the animation to */
 8 div {
 9     width: 100px;
10     height: 100px;
11     background-color: red;
12     animation-name: mylove;
13     animation-duration: 4s;
14 } 

3> animation-duration

syntax

animation-duration: time|initial|inherit;

4> animation-timing-function

syntax

animation-timing-function: linear|ease|ease-in|ease-out|cubic-bezier(n,n,n,n)|initial|inherit;

5> animation-delay

syntax

animation-delay: time|initial|inherit;

6> animation-iteration-count

  • The animation-iteration-count property specifies the number of times an animation should be played.

syntax

animation-iteration-count: number|infinite|initial|inherit;

7> animation-direction

syntax

animation-direction: normal|reverse|alternate|alternate-reverse|initial|inherit;

?? 8> animation-fill-mode

  • The animation-fill-mode property specifies a style for the element when the animation is not playing (when it is finished, or when it has a delay).

syntax

animation-fill-mode: none|forwards|backwards|both|initial|inherit;

9> animation-play-state

  • The animation-play-state property specifies whether the animation is running or paused.

syntax

animation-play-state: paused|running|initial|inherit;

Example

 1 div {
 2     width: 100px;
 3     height: 100px;
 4     background: red;
 5     position: relative;
 6     -webkit-animation: mymove 5s infinite;  /* Chrome, Safari, Opera */
 7     animation: mymove 5s infinite;
 8 }
 9 
10 div:hover {
11     -webkit-animation-play-state: paused;  /* Chrome, Safari, Opera */
12     animation-play-state: paused;
13 }
14 
15 /* Chrome, Safari, Opera */
16 @-webkit-keyframes mymove {
17     from {left: 0px;}
18     to {left: 200px;}
19 }
20 
21 @keyframes mymove {
22     from {left: 0px;}
23     to {left: 200px;}
24 }
25 </style>

 Animation example1

1 div {
2     animation: example 5s linear 2s infinite alternate;
3 }

 Animation example2

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <style> 
 5 div {
 6     width: 100px;
 7     height: 100px;
 8     background-color: red;
 9     position: relative;
10     animation-name: example;
11     animation-duration: 5s;
12     animation-timing-function: linear;
13     animation-delay: 2s;
14     animation-iteration-count: infinite;
15     animation-direction: alternate;
16 }
17 @keyframes example {
18     0%   {background-color:red; left:0px; top:0px;}
19     25%  {background-color:yellow; left:200px; top:0px;}
20     50%  {background-color:blue; left:200px; top:200px;}
21     75%  {background-color:green; left:0px; top:200px;}
22     100% {background-color:red; left:0px; top:0px;}
23 }
24 </style>
25 </head>
26 <body>
27 
28 <p><b>Note:</b> This example does not work in Internet Explorer 9 and earlier versions.</p>
29 
30 <div></div>
31 
32 </body>
33 </html>

 

posted @ 2016-01-01 14:58  提佰萬  阅读(231)  评论(0编辑  收藏  举报