CSS3 -- API學習 (2D、3D動畫效果)

一、2D效果

1.translate(xpx,ypx)、translateX(xpx),translateY(ypx)

       右平移xpx,左平移ypx

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                background: #FF0000;
                box-shadow: 0px 0px 3px aqua;
            }
            
            #translate1{

                transform: translate(50px,100px);

                -ms-transform: translate(50px,100px); /* IE 9 */

                -webkit-transform: translate(50px,100px); /* Safari and Chrome */
                transform: translate(50px,100px);
            }

        </style>
    </head>
    <body>
        <div id="translate">translate</div>
        <div id="translate1">translate1</div>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

結果:

2.rotate 旋轉

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                background: #FF0000;
                box-shadow: 0px 0px 3px aqua;
            }
            
            #translate1{
                transform: rotate(30deg);
                -ms-transform: rotate(30deg); /* IE 9 */
                -webkit-transform: rotate(30deg); /* Safari and Chrome */
            }

        </style>
    </head>
    <body>
        <div id="translate">translate</div>
        <div id="translate1">translate1</div>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

結果:

3.scale(x,y) 

          x > 1,寬度放大x倍;x < 1,寬度縮小x倍;

          y > 1,高度放大x倍;  y <  1,高度縮小y倍;

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                background: #FF0000;
                box-shadow: 0px 0px 3px aqua;
            }
            
            #translate1{
                -ms-transform:scale(2,3); /* IE 9 */
                -webkit-transform: scale(2,3); /* Safari */
                transform: scale(2,2); /* 標準語法 */
            }

        </style>
    </head>
    <body>
        <div id="translate">translate</div>
        <div id="translate1">translate1</div>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

結果:

放大                                                    縮小  

4.skew 傾斜

skewX: 相當於y軸繞中心逆時針旋轉 n°

skewY: 相當於x軸繞中心順時針旋轉 n°

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                background: #FF0000;
                box-shadow: 0px 0px 3px aqua;
            }
            
            #translate1{
                transform: skew(30deg,20deg);
                -ms-transform: skew(30deg,20deg); /* IE 9 */
                -webkit-transform: skew(20deg,20deg); /* Safari and Chrome */

            }
        </style>
    </head>
    <body>
        <div id="translate">translate</div>
        <div id="translate1">translate1</div>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

結果:

    x=20deg,y=20deg              x=20deg                   y=20deg

5.matrix就不介紹,我沒有使用明白,等明白了在介紹

 

總結:

二、3D效果

1.ratateX(n deg)  按照X軸方向旋轉

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                width: 100px;
                height: 100px;
                border: 1px solid red;
                background: #FF0000;
                box-shadow: 0px 0px 3px aqua;
            }
            
            #translate1{
                transform: rotateX(60deg);
                -webkit-transform: rotateX(60deg); /* Safari 與 Chrome */
            }
        </style>
    </head>
    <body>
        <div id="translate">translate</div>
        <div id="translate1">translate1</div>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

結果:

60度                                    90度                    180度

2.ratateX(n deg)  按照Y軸方向旋轉 這裏就不寫了,和上面一樣

三、過渡 transition

1.transition

transition: 屬性   n秒,屬性   n秒,屬性   n秒,屬性   n秒,屬性   n秒 ;(屬性可以是color  width  height  transform等)

接下來展示一些我做的一個效果

要點:

①hover必要的,放上鼠標之後的效果

②transition   過渡的元素和時間設置

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                color: white;
                width: 50px;
                height: 50px;
                background: chartreuse;
                box-shadow: 0px 0px 3px aqua;
            }
            
            #translate1{
                transition:background 1.5s, 1s, width 1s, height 1s, transform 1s;
                -webkit-transition:background 1.5s,font-size 1s, width 1s, height 1s, -webkit-transform 1s;
            }
            
            #translate1:hover{
                background: #00FFFF;
                font-size: 25px;
                width: 100px;
                height: 100px;
                -webkit-transform: rotate(360deg); /* Chrome, Safari, Opera */
                transform: rotate(360deg);
            }

        </style>
    </head>
    <body>
        <div id="translate1">
            <span><b>CSS3</b></span>
            <br>
            過渡
        </div>
    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

效果:我不會做動態圖,有會的小夥伴可以教我一下,坤兒在這先謝過!(中間還有過效果看不到,可以去http://www.runoob.com/css3/css3-transitions.html來看那個圖,和我的效果一樣)

之前                       之後

2.等待屬性,鼠標放在元素上多長事件後,出現過渡效果

transition: 屬性   n秒,屬性   n秒,屬性   n秒,屬性   n秒,屬性   n秒 ,linear 2s;點擊兩秒之後,出現過渡效果。

四、動畫效果(聽炫酷的哦

要點:

1.@keyframes  定義動畫

   @keyframes myfirst{

         0%{};

        100%{};

   }

2.animation:動畫名稱  n秒 屬性  屬性  屬性  (調用動畫)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            div {
                color: white;
                width: 80px;
                height: 50px;
                position: relative;
                background: chartreuse;
                box-shadow: 0px 0px 3px aqua;
                animation:myfirst 5s;     /*調用動畫*/
                -webkit-animation:myfirst 5s; /* Safari and Chrome */

            }
            
            @keyframes myfirst{         /*定義動畫*/
                0%{
                    top: 0;
                    left: 0;
                    transform: rotate(0deg);
                }
                10%{
                    top: 0;
                    left: 0;
                    background: #00FFFF;
                    transform: rotate(30deg);
                }
                30%{
                    top: 0;
                    left: 0;
                    background: #00FFFF;
                    transform: rotate(10deg);
                }
                50%{
                    top: 0;
                    left: 200px;
                    background: #00FFFF;
                    transform: rotate(0deg);
                }
                70%{
                    background: #00FFFF;
                }
                100%{
                    left: 0px;
                    transform: rotate(720deg);
                }
            }

            
        </style>
    </head>
    <body>
        <div id="translate1">
            <span><b>CSS3</b></span>
            <br>
            動畫
        </div>

    </body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

結果:效果可以自己看,和這裏差不多   http://www.runoob.com/css3/css3-animations.html

***直接加載animation後面的屬性***

等待:linear 2s

循環:infinite    重複動畫效果

交替:alternate      按原操作,返回

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章