css3-形變、過渡棍郎、動畫

一其障、2D形變

平移

transform:translate(x,y)

相對當前位置涂佃,向左移動x像素励翼,像下移動y像素

transform:translateX(num)

相對當前位置,向左移動num像素

transform:translateY(num)

相對當前位置巡李,向下移動num像素

縮放

transform:scale(x抚笔,y)

scale()方法扶认,該元素增加或減少的大小侨拦,取決于寬度(X軸)和高度(Y軸)的參數(shù)

transform:scaleX( num )

改變元素的寬度

transform:scaleY( num )

改變元素的高度

旋轉(zhuǎn)

transform:rotate( 角度 );

參數(shù)是一個角度,表示旋轉(zhuǎn)多少度

傾斜

transform:skew(角度x辐宾,角度y)

沿著x軸旋轉(zhuǎn)多少度狱从,沿著y軸轉(zhuǎn)多少度

transform:skewX(角度x)

沿著x軸旋轉(zhuǎn)多少度

transform:skewY(角度y)

沿著y軸旋轉(zhuǎn)多少度

二、3D形變

平移

transform:translate3d( x , y , z );

定義三個方向上的平移

transform:translateZ( z );

定義Z方向的平移(單用看不出效果)

縮放

transform: scale3d( x , y , z);

定義3個方向上的縮放叠纹,同時可以分別實現(xiàn)3個方向的分別設(shè)置

旋轉(zhuǎn)

rotate3d( x , y , z , angle )

x季研,表示旋轉(zhuǎn)軸X坐標方向的矢量。
y誉察,表示旋轉(zhuǎn)軸Y坐標方向的矢量与涡。
z,表示旋轉(zhuǎn)軸Z坐標方向的矢量持偏。
angle驼卖,表示旋轉(zhuǎn)角度。正的角度值表示順時針旋轉(zhuǎn)鸿秆,負值表示逆時針旋轉(zhuǎn)酌畜。

三、過渡

transition屬性

通過transition卿叽,我們可以在不使用flash的情況下桥胞,讓元素從一種樣式變化成另一種樣式

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
        body{
            position: relative;
        }
        #box{
            height: 100px;
            width: 100px;
            background-color: skyblue;
            transition: margin-left 3s;
        }
    </style>
</head>
<body>
<!-- 通過transition,我們可以在不使用flash的情況下考婴,當元素從一種樣式變化成另一種樣式  -->
<div id="box"></div>

<script type="text/javascript">
   // var box = document.querySelector("box");
    box.onclick = function(){
        this.style.marginLeft = "600px";
}
</script>
</body>
</html>

運行效果

GIF.gif

transition實現(xiàn)多個過渡

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
        body{
            position: relative;
        }
        #box{
            /*如果動畫的元素是margin贩虾,不能設(shè)置auto*/
            height: 100px;
            width: 100px;
            background-color: pink;
            position: absolute;
            top: 20px;
            transition: margin-left 3s,background-color 3s,border-radius 3s,top 3s;
        }
    </style>
</head>
<body>

<!-- 通過transition,我們可以在不使用flash的情況下沥阱,當元素從一種樣式變化成另一種樣式  -->

<div id="box"></div>
<div id="box1"></div>

<script type="text/javascript">
    //var box = document.querySelector("box");
    box.onclick = function(){
        this.style.marginLeft = "600px";
        this.style.backgroundColor = "red";
        this.style.borderRadius = "50px";
        this.style.top = "100px";
    }
</script>
</body>
</html>

運行效果

GIF.gif

利用偽元素實現(xiàn)transition過度

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
        body{
            position: relative;
        }
        #box{
            /*如果動畫的元素是margin整胃,不能設(shè)置auto*/
            height: 100px;
            width: 100px;
            background-color: pink;
            position: absolute;
            top: 20px;
            transition: margin-left 3s,background-color 3s,border-radius 3s,top 3s;
        }
        #box:hover{
            background-color: purple;
            border-radius: 50px;
            top: 50px;
        }
    </style>
</head>
<body>

<div id="box"></div>

</body>
</html>

運行結(jié)果

GIF.gif

利用transition實現(xiàn)3D動畫過度

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
        body{
            position: relative;
        }
        #box{
            /*如果動畫的元素是margin,不能設(shè)置auto*/
            height: 300px;
            width: 300px;
            margin: 15px 0 0 15px;
            position: relative;
            background: url(img/bg.jpg) round;
            /*將來寫有關(guān)動畫相關(guān)的代碼,要寫兼容*/
            /*transform-style: preserve-3d;*/
            /*設(shè)置鏡頭距離*/
            perspective: 20000px;
        }
        div img{
            width: 130px;
            height: 200px;
            position: absolute;
            top: 50px;
            left: 85px;
            transform-style: preserve-3d;
            transform: rotateZ(180deg) rotateX(0) rotateY(0deg);
            transition: all 3s;
        }
        div img:hover{
            transform: rotateZ(0) rotateX(360deg) rotateY(180deg);
        }
    </style>
</head>
<body>

<div id="box">![](img/shu.jpg)</div>

</body>
</html>

運行結(jié)果

GIF.gif

css3動畫

如果用@keyframes 創(chuàng)建動畫屁使,把它綁定到一個選擇器在岂,否則動畫不會有任何效果。
指定至少這兩個CSS3的動畫屬性綁定向一個選擇器:
規(guī)定動畫的名稱
規(guī)定動畫的時長

from-to

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
    
    #box{
        height: 30px;
        width: 30px;
        background-color: blue;
        animation: rect 3s linear 0.5s alternate 3 ;
    }

    @keyframes rect{
        from{
            transform: translate(0,0);
            background-color: blue;
        }
        to{
            transform: translate(200px,200px);
            background-color: red;
        }
    }   
    </style>    
</head>
<body>

<div id="box"></div>

</body>
</html>

運行效果

GIF.gif

百分比

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
    
    #box{
        height: 50px;
        width: 50px;
        background-color: blue;
        animation: rect 3s linear infinite alternate;
    }

    @keyframes rect{
        0%{
            transform: translate(0,0);
            background-color: blue;
        }
        25%{
            transform: translate(300px,0px);
            background-color: red;
            border-radius: 50%;
        }
        50%{
            transform: translate(300px,300px);
            background-color: pink;
            border-radius: 0;
        }
        75%{
            transform: translate(0px,300px);
            background-color: orange;
            border-radius: 50%;
        }
        100%{
            transform: translate(0px,0px);
            background-color: yellow;
        }
    }   

    </style>
    
</head>
<body>

<div id="box"></div>

</body>
</html>

運行效果

GIF.gif

小案例(動畫實現(xiàn)一個簡易大風車)

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <style type="text/css">
        .circle{
            height: 200px;
            width: 200px;
            margin: 50px auto;
            background-color: pink;
            border-radius: 50%;
            position: relative;
            animation: rect 2s linear infinite;
        }
        .f1{
            height: 80px;
            width: 50px;
            background-color: blue;
            position: absolute;
            left: 100px;
            top: 20px;
            border-top-right-radius: 100%;
        }
        .f2{
            width: 80px;
            height: 50px;
            background-color: red;
            position: absolute;
            left: 100px;
            top: 100px;
            border-bottom-right-radius: 100%;
        }
        .f3{
            height: 80px;
            width: 50px;
            background-color: orange;
            position: absolute;
            left: 50px;
            top: 100px;
            border-bottom-left-radius: 100%;
        }
        .f4{
            height: 50px;
            width: 80px;
            background-color: green;
            position: absolute;
            left: 20px;
            top: 50px;
            border-top-left-radius: 100%;
        }
        @keyframes rect{
            from{
                transform: rotate(0);
            }
            to{
                transform: rotate(360deg);
            }
        }
    </style>
</head>
<body>

<div class="circle">
    <div class="f1"></div>
    <div class="f2"></div>
    <div class="f3"></div>
    <div class="f4"></div>
</div>

</body>
</html>

運行結(jié)果

GIF.gif

喜歡就點贊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛮寂,一起剝皮案震驚了整個濱河市蔽午,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酬蹋,老刑警劉巖及老,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異范抓,居然都是意外死亡骄恶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門匕垫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僧鲁,“玉大人,你說我怎么就攤上這事象泵∧海” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵偶惠,是天一觀的道長时迫。 經(jīng)常有香客問我复濒,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任芥牌,我火速辦了婚禮仍侥,結(jié)果婚禮上稽物,老公的妹妹穿的比我還像新娘土铺。我一直安慰自己,他們只是感情好瘾腰,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布皆的。 她就那樣靜靜地躺著,像睡著了一般蹋盆。 火紅的嫁衣襯著肌膚如雪费薄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天栖雾,我揣著相機與錄音楞抡,去河邊找鬼。 笑死析藕,一個胖子當著我的面吹牛召廷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼竞慢,長吁一口氣:“原來是場噩夢啊……” “哼先紫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筹煮,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤遮精,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后败潦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體本冲,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年劫扒,在試婚紗的時候發(fā)現(xiàn)自己被綠了檬洞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡沟饥,死狀恐怖添怔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情闷板,我是刑警寧澤澎灸,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布院塞,位于F島的核電站遮晚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拦止。R本人自食惡果不足惜县遣,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汹族。 院中可真熱鬧萧求,春花似錦、人聲如沸顶瞒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榴徐。三九已至守问,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坑资,已是汗流浹背耗帕。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袱贮,地道東北人仿便。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嗽仪。 傳聞我的和親對象是個殘疾皇子荒勇,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 看了很多視頻、文章闻坚,最后卻通通忘記了枕屉,別人的知識依舊是別人的,自己卻什么都沒獲得鲤氢。此系列文章旨在加深自己的印象搀擂,因...
    DCbryant閱讀 1,864評論 0 4
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜卷玉,今天將帶大家一窺iOS動畫全貌哨颂。在這里你可以看...
    F麥子閱讀 5,113評論 5 13
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜相种,今天將帶大家一窺ios動畫全貌威恼。在這里你可以看...
    每天刷兩次牙閱讀 8,497評論 6 30
  • 關(guān)于css3變形 CSS3變形是一些效果的集合,比如平移寝并、旋轉(zhuǎn)箫措、縮放和傾斜效果,每個效果都被稱作為變形函數(shù)(Tra...
    hopevow閱讀 6,333評論 2 13
  • 很好衬潦,昨晚的三個單詞還記憶深刻斤蔓。(practice + spare + innocent)不聽老人言,吃虧在眼前镀岛。...
    6726a3241fb1閱讀 765評論 0 0