css3 炫酷的动画transform, transition, animation

337 查看

元素的变形-transform属性

1. 旋转

-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
-o-transform: rotate(30deg);
-ms-transform: rotate(30deg);
transform: rotate(30deg);

2. 缩放和翻转

-webkit-transform:scale(1.5);
-moz-transform:scale(1.5);
-o-transform:scale(1.5);
-ms-transform:scale(1.5);
transform:scale(1.5);

3. 移动

-webkit-transform:translate(10px,5px);
-moz-transform:translate(10px,5px);
-o-transform:translate(10px,5px);
-ms-transform:translate(10px,5px);
transform:translate(10px,5px);

4. 倾斜

-webkit-transform:skew(-30deg);
-moz-transform:skew(-30deg);
-o-transform:skew(-30deg);
-ms-transform:skew(-30deg);
transform:skew(-30deg);

5. 矩阵变形

-webkit-transform:matrix(0.866,0.5,0.5,-0.866,10,10);
-moz-transform:matrix(0.866,0.5,0.5,-0.866,10,10);
-o-transform:matrix(0.866,0.5,0.5,-0.866,10,10);
-ms-transform:matrix(0.866,0.5,0.5,-0.866,10,10);
transform:matrix(0.866,0.5,0.5,-0.866,10,10);

6. 同时使用多个变形函数

-webkit-transform:translate(10px,10px) rotate(30deg) scale(1,-1);
-moz-transform:translate(10px,10px) rotate(30deg) scale(1,-1);
-o-transform:translate(10px,10px) rotate(30deg) scale(1,-1);
-ms-transform:translate(10px,10px) rotate(30deg) scale(1,-1);
transform:translate(10px,10px) rotate(30deg) scale(1,-1);

7. 定义变形原点--transform-origin属性

li a {
     display:block;
     padding:5px 10px;
     color:#333;
     text-decoration:none;
     /* 变形原点:自定义*/
    -webkit-transform-origin:0 0;
    -moz-transform-origin:0 0;
    -o-transform-origin:0 0;
    -ms-transform-origin:0 0;
     transform-origin:0 0;
}

li:hover a {
     background-color:#f90;
     color:#fff;
     /* 变形方式: 旋转*/
    -webkit-transform:rotate(30deg);
    -moz-transform:rotate(30deg);
    -o-transform:rotate(30deg);
    -ms-transform:rotate(30deg);
    transform:rotate(30deg);
}

css3 过渡效果--transition

实现过渡效果--transition属性
transition: transition-property || transition-duration || transition-timing-function || transition-delay

1. transition-property:none | all |

// none 表示没有任何css 属性有过渡效果
// all 为默认值,表示所有的css属性都有过渡效果
// property 指定一个用逗号分隔的多个属性,针对指定的这些属性有过渡效果
/*设置过渡属性*/
-webkit-transition-property:-webkit-transoform;
-moz-transition-property:-webkit-transoform;
-o-transition-property:-webkit-transoform;
transition-property:-webkit-transoform;

2. transition-duration:

/* 设置多个过渡属性*/
-webkit-transition-duration:4s, 1s;
-moz-transition-duration:4s, 1s;
-o-transition-duration:4s, 1s;
transition-duration:4s, 1s;

3. transition-delay:

/*设置延迟时间*/
-webkit-transition-delay:500ms;
-moz-transition-delay:500ms;
-o-transition-delay:500ms;
transition-delay:500ms;

4. transition-timing-function: ease | linear | ease-out | ease-in-out | cubic-bezier(n,n,n,n)

linear: 表示过渡一直是一个速度
ease: 表示过渡的速度先慢,再快,最后非常慢。
ease-in: 表示过渡的速度先慢,后越来越快,直至结束。
ease-out:表示过渡的速度先快,后越来越慢,直至结束。
ease-in-out:表示过渡的速度在开始和结束时,都很慢。
cubic-bezier(n,n,n,n):自定义贝塞尔曲线效果,其中的4个参数为0到1的数字。

过渡效果实例:

div {
     margin:100px auto;
     width:200px;
     height:100px;
     background-color:#00f;
     /*设置过渡效果*/
    -webkit-transition:all 1000ms linear 500ms;
    -moz-transition:all 1000ms linear 500ms;
    -o-transition:all 1000ms linear 500ms;
    transition:all 1000ms linear 500ms;
}

div:hover {
    background-color:#f90;
    /*设置变形:旋转240deg*/
    -webkit-transform:rotate(240deg);
    -moz-transform:rotate(240deg);
    -o-transform:rotate(240deg);
    transform:rotate(240deg);
}

css3动画设计--animation

div {
    position:absolute;
    -moz-animation:mymove 5s infinite;
    -webkit-animation: mymove 5s infinite;
}

@-moz-keyframes mymove{
   0% {top:0px;}
   25% {top:200px; left:200px;}
   75% {top:50px; left:10px;}
   100% {top:100px; left:60px;}
}
@-webkit-keyframes mymove{
   0% {top:0px;}
   25% {top:200px; left:200px;}
   75% {top:50px; left:10px;}
   100% {top:100px; left:60px;}
}

动画的实现--animation属性

animation: <name><duration><timing-function><delay><iteration-count><direction>

1. animation-name:<keyframename>| none
2. animation-duration:<time> // 定义动画播放的周期时间
3. animation-timimg-function:  ease | linear | ease-out | ease-in-out | cubic-bezier(n,n,n,n)
linear: 表示过渡一直是一个速度
ease: 表示过渡的速度先慢,再快,最后非常慢。
ease-in: 表示过渡的速度先慢,后越来越快,直至结束。
ease-out:表示过渡的速度先快,后越来越慢,直至结束。
ease-in-out:表示过渡的速度在开始和结束时,都很慢。
cubic-bezier(n,n,n,n):自定义贝塞尔曲线效果,其中的4个参数为0到1的数字。

4. animation-delay: <time>指定播放动画的时间长度
5. animation-iteration-coumt:infinite | <n> // 定义动画循环播放的次数。
6. animation-direction:normal | alternate

实例

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>effect</title>
     <style type="text/css">
     .img {
          width: 510px;
          height: 318px;
          -webkit-transform-origin:42 90;
         -moz-transform-origin:42 90;
         -o-transform-origin:42 90;
         -ms-transform-origin:42 90;
          transform-origin:42 90;
         -moz-animation:mymove 5s ease-out 1;
            -webkit-animation: mymove 5s ease-out 1;
     }

     @-moz-keyframes mymove {
          25% {-moz-transform:scale(1.5);}
          50% {-moz-transform:scale(2);}
          100% {-moz-transform:scale(2.5);}
     }
     @-webkit-keyframes mymove {
          25% {-webkit-transform:scale(1.5);}
          50% {-webkit-transform:scale(2);}
          100% {-webkit-transform:scale(2.5);}
     }
     </style>
</head>
<body>
<img src="img/1.jpeg" width="510" height="318" class="img" />    
</body>
</html>