Transform總結(jié)

CSS3動(dòng)畫的屬性主要分為三類:transform奈懒、transition以及animation卒茬。

Transform:(css3?2D 轉(zhuǎn)換)

注意:這些效果疊加時(shí)量没,中間用空格隔開

作用:能夠?qū)υ剡M(jìn)行移動(dòng)虐急、縮放婿屹、轉(zhuǎn)動(dòng)到踏、拉長碑韵、拉伸

轉(zhuǎn)換:使元素改變形狀叁怪、尺寸族展、位置的一種效果

Transform:2D的轉(zhuǎn)換方法:

2D的轉(zhuǎn)換

rotate

設(shè)置元素順時(shí)針旋轉(zhuǎn)的角度森缠,用法是:transform: rotate(x);

參數(shù)x必須是以deg結(jié)尾的角度數(shù)或0,可為負(fù)數(shù)表示反向仪缸。

scale

設(shè)置元素放大或縮小的倍數(shù)贵涵,用法包括:

transform: scale(a); ? ? ? ? ? ? ? ? ?元素x和y方向均縮放a倍

transform: scale(a, b);????????????? 元素x方向縮放a倍,y方向縮放b倍

transform: scaleX(a);??????????????? 元素x方向縮放a倍恰画,y方向不變

transform: scaleY(b);??????????????? 元素y方向縮放b倍宾茂,x方向不變

Transform:2D詳細(xì)轉(zhuǎn)換方法:


2D詳細(xì)轉(zhuǎn)換

translate()方法:

通過translate()方法,元素從其當(dāng)前位置移動(dòng)拴还,根據(jù)給定的left(x坐標(biāo))和top(y坐標(biāo))位置.(參數(shù)為負(fù)數(shù)時(shí)跨晴,反方向移動(dòng)物體,其基點(diǎn)默認(rèn)為元素中心點(diǎn)片林,也可以根據(jù)transform-origin進(jìn)行改變基點(diǎn))

translate 設(shè)置元素的位移端盆,用法為:
transform: translate(a, b);? ? ? ? ? ? ? ? 元素x方向位移a,y方向位移b
transform: translateX(a);? ? ? ? ? ? ? ? ? 元素x方向位移a费封,y方向不變
transform: translateY(b);? ? ? ? ? ? ? ? ? 元素y方向位移b焕妙,x方向不變

skew

設(shè)置元素傾斜的角度,用法包括:

transform: skew(a, b);????????????? 元素x方向逆時(shí)針傾斜角度a弓摘,y方向順時(shí)針傾斜角度b

transform: skewX(a);??????????????? 元素x方向逆時(shí)針傾斜角度a访敌,y方向不變

transform: skewY(b);??????????????? 元素y方向順時(shí)針傾斜角度b,想方向不變

以上的參數(shù)均必須是以deg結(jié)尾的角度數(shù)或0衣盾,可為負(fù)數(shù)表示反向寺旺。

matrix

設(shè)置元素的變形矩陣爷抓,因?yàn)榫仃囎冃芜^于復(fù)雜,暫略阻塑。

(1)translateX(n):transform:translateX(100px);


(2)translateY(n):transform:translateY(20px);


(3)translate(x,y):transform:translate(100px,20px);


注意:translate(100px);認(rèn)為和translateX(100px)等價(jià)蓝撇。

Rotate(angle)方法:

通過rotate(),元素順時(shí)針旋轉(zhuǎn)給定的角度。允許負(fù)值陈莽,元素將逆時(shí)針旋轉(zhuǎn)

Transform:rotate(30deg);


Transform:rotate(120deg);


Transform:rotate(-30deg);


Scale()方法:

通過scale()方法渤昌,元素的尺寸會(huì)增加或減少,根據(jù)給定的寬度(X軸)和高度(Y軸)參數(shù)走搁。(中心點(diǎn):元素的中心位置独柑,縮放基數(shù)為1,大于1就放大私植,小于1就縮屑烧ぁ)

(1)scaleX()方法:transform:scaleX(2);


值scaleX(2)把寬度轉(zhuǎn)換為原始尺寸的2倍

(2)scaleY()方法:transform:scaleY(2);

ScaleY(2)把高度度轉(zhuǎn)換為原始尺寸的2倍

(3)scale()方法:transform:scale(2,1.5);


值scale(2,2)把寬度轉(zhuǎn)換為原始尺寸的2倍,高度度轉(zhuǎn)換為原始尺寸的2倍

注意:scale(2)與scale(2,2)等價(jià)

Skew(angle)方法:

通過skew()方法曲稼,元素翻轉(zhuǎn)給定的角度索绪,根據(jù)給定的水平線(X軸)和垂直線(Y軸)參數(shù)(中心點(diǎn):元素中心)

(1)skewX(angle):transform:skewX(30deg);


值skewX(30deg)圍繞X軸把元素翻轉(zhuǎn)30度。

(2)skewY(angle):transform:skewY(30deg)


值skewY(30deg)圍繞Y軸把元素翻轉(zhuǎn)30度贫悄。

(3)skew(x-angle,y-angle):transform:skew(30deg,10deg);


值skew(30deg,20deg)圍繞X軸把元素翻轉(zhuǎn)30度瑞驱,圍繞Y軸翻轉(zhuǎn)20度。

注意:skew(30deg)等價(jià)于skewX(30deg)

Matrix()方法:

Matrix()方法把所有2D轉(zhuǎn)換方法組合在一起窄坦。

Matrix()方法需要六個(gè)參數(shù)唤反,包含數(shù)學(xué)函數(shù),允許您:旋轉(zhuǎn)鸭津,縮放拴袭,移動(dòng),傾斜元素曙博。

Transform-origin(x,y)方法:

改變?cè)氐幕c(diǎn)位置拥刻。

X和y的值:百分值,em父泳,px般哼,關(guān)鍵字。

Left,center,right是水平方向取值:

Left=0%;center=50%;right:100%;

Top,center,bottom是垂直方向的取值:

Top=0%;center=50%;bottom=100%;

如果只取一個(gè)值惠窄,表示垂直方向值不變(center)

1蒸眠、top left | left top等價(jià)于0 0 | 0% 0%

2、top | top center | center top等價(jià)于50% 0

3杆融、right top | top right等價(jià)于100% 0

4楞卡、left | left center | center left等價(jià)于0 50% | 0% 50%

5、center | center center等價(jià)于50% 50%(默認(rèn)值)

6、right | right center | center right等價(jià)于100% 50%

7蒋腮、bottom left | left bottom等價(jià)于0 100% | 0% 100%

8淘捡、bottom | bottom center | center bottom等價(jià)于50% 100%

9、bottom right | right bottom等價(jià)于100% 100%

Css3 3D轉(zhuǎn)換


Css3 transform方法:


Transform-style:

規(guī)定如何在3D空間中呈現(xiàn)被嵌套的元素池摧,該屬性必須與transform屬性一同使用焦除。該屬性設(shè)置在父元素中

Transform-style:flat|preserve-3d

Perspective:

Perspective:number|none;

perspective屬性定義3D元素距視圖的距離,以像素計(jì)作彤。該屬性允許您改變3D元素,查看3D元素的視圖膘魄。

注意:
(1)當(dāng)為元素定義perspective屬性時(shí),其子元素會(huì)獲得透視效果竭讳,而不是元素本身创葡。

(2)與perspective-origin屬性一同使用該屬性,這樣就能改變3D元素的底部位置

(3)我們可以簡單的理解為視距绢慢,用來設(shè)置用戶和元素3D空間Z平面之間的距離灿渴。而其效應(yīng)由他的值來決定,值越小呐芥,用戶與3D空間Z平面距離越近,視覺效果更令人印象深刻奋岁;反之思瘟,值越大,用戶與3D空間Z平面距離越遠(yuǎn)闻伶,視覺效果就很小滨攻。(perspective取值越小,3D效果就越明顯蓝翰,也就是你的眼睛越靠近真3D光绕。)

Perspective-origin:

Perspective-origin:x-axisy-axis;

定義3D元素所基于的X軸和Y軸。該屬性允許您改變3D元素的底部位置畜份。當(dāng)為元素定義perspective-origin屬性時(shí)诞帐,其子元素會(huì)獲得透視效果,而不是元素本身爆雹。(該屬性必須與perspective屬性一同使用停蕉,而且只影響3D轉(zhuǎn)換元素)

注意:為了指轉(zhuǎn)換子元素變形的深度,perspective-origin屬性必須定義父元素上钙态。通常perspective-origin屬性本身不做任何事情慧起,它必須被定義在設(shè)置了perspective屬性的元素上。換句話說册倒,perspective-origin屬性需要與perspective-origin屬性結(jié)合起來使用蚓挤,以便將視點(diǎn)移至元素的中心以外位置

Backface-visibility:隱藏被旋轉(zhuǎn)元素的背面

Backgace-visibility:visible|hidden;

Translate3d()

transform:translate(30px,30px,200px);

Transform:translate3d(30px,30px,-200px);

當(dāng)z軸值越大時(shí),元素也離觀看者更近,從視覺上元素就變得更大灿意;反之其值越小時(shí)估灿,元素也離觀看者更遠(yuǎn),從視覺上元素就變得更小脾歧。

TranslateZ():

Transform:translateZ(200px);

Transform:translateZ(-200px);

使用translateZ()函數(shù)可以讓元素在Z軸進(jìn)行位移甲捏,當(dāng)其值為負(fù)值時(shí),元素在Z軸越移越遠(yuǎn)鞭执,導(dǎo)致元素變得較小司顿。反之,當(dāng)其值為正值時(shí)兄纺,元素在Z軸越移越近大溜,導(dǎo)致元素變得較大。

ScaleZ():

默認(rèn)值為1估脆,當(dāng)值大于1時(shí)钦奋,元素放大,反之小于1大于0.01時(shí)疙赠,元素縮小付材。

ScaleZ(-1)定義了一個(gè)原點(diǎn)在z軸的對(duì)稱點(diǎn)

單獨(dú)使用沒有效果,需配合其他變形函數(shù)一起使用才會(huì)有效果

Transform:scale(5) rotateX(45deg);

Transform:scale(.25) rotateX(45deg);

RotateX(angle),rotateY(angle),rotateZ(angle):

圍繞X/Y/Z軸旋轉(zhuǎn)圃阳,angle為旋轉(zhuǎn)的角度厌衔,可以是正值,順時(shí)針旋轉(zhuǎn)捍岳,可以是負(fù)值富寿,逆時(shí)針旋轉(zhuǎn)

Rotate3d(x,y,z,angle):

·x:是一個(gè)0到1之間的數(shù)值,主要用來描述元素圍繞X軸旋轉(zhuǎn)的矢量值锣夹;

·y:是一個(gè)0到1之間的數(shù)值页徐,主要用來描述元素圍繞Y軸旋轉(zhuǎn)的矢量值;

·z:是一個(gè)0到1之間的數(shù)值银萍,主要用來描述元素圍繞Z軸旋轉(zhuǎn)的矢量值变勇;

·a:是一個(gè)角度值,主要用來指定元素在3D空間旋轉(zhuǎn)的角度贴唇,如果其值為正值贰锁,元素順時(shí)針旋轉(zhuǎn),反之元素逆時(shí)針旋轉(zhuǎn)滤蝠。

Transform:rotateX(45deg);

Transform:rotateY(45deg);

Transform:rotateZ(45deg);

Transform:rotate3d(.6,1,.6,45deg);

dd

origin

設(shè)置元素的懸掛點(diǎn)豌熄,用法包括:

transform-origin: a b;??????????????? 元素的懸掛點(diǎn)為(a, b)

元素的懸掛點(diǎn)即為它旋轉(zhuǎn)和傾斜時(shí)的中心點(diǎn)。取值中的a物咳、b可以是長度值锣险、以%結(jié)尾的百分比或者left蹄皱、top、right芯肤、bottom四個(gè)值巷折。

transition

transition-property
指定transition效果作用的CSS屬性,其值是CSS屬性名崖咨。

transition-duration

動(dòng)畫效果持續(xù)的時(shí)間锻拘,其值為以s結(jié)尾的秒數(shù)。

transition-timing-function

transition-delay

動(dòng)畫效果推遲開始執(zhí)行的時(shí)間击蹲,其值為以s結(jié)尾的秒數(shù)署拟。

CSS3動(dòng)畫的生命周期如下圖所示,從中可以清楚的看出duration和delay之間的關(guān)系:


animation

CSS3中真正的動(dòng)畫屬性是animation歌豺,而前面的transform和transition都只是對(duì)DOM元素的變形或者是狀態(tài)的過渡推穷。實(shí)際上,CSS3所支持的動(dòng)畫效果只是填充動(dòng)畫类咧,也就是說先設(shè)定整個(gè)動(dòng)畫生命周期中的幾個(gè)關(guān)鍵狀態(tài)(key ?frame馒铃,關(guān)鍵幀),然后動(dòng)畫將自行計(jì)算并模擬關(guān)鍵幀之間的過渡痕惋。那么在設(shè)置animation的屬性之前就必須先設(shè)定好關(guān)鍵幀了区宇。

關(guān)鍵幀@keyframes的語法結(jié)構(gòu)如下:

@keyframesNAME {

a% {

/*CSS屬性*/

}

b% {

/*CSS屬性*/

}

...

}

NAME表示動(dòng)畫的名字;a%值戳、b%表示以百分號(hào)結(jié)尾的百分?jǐn)?shù)议谷,用于設(shè)定該關(guān)鍵幀在動(dòng)畫生命周期中的位置;百分?jǐn)?shù)后面的{ } 中則需要寫成該關(guān)鍵幀狀態(tài)下CSS屬性的值述寡。另外柿隙,如果同一個(gè)百分?jǐn)?shù)值在@keyframes中出現(xiàn)多次叶洞,那么后出現(xiàn)的將覆蓋先出現(xiàn)的鲫凶;并且關(guān)鍵幀在@keyframes中時(shí)無序的。

設(shè)置完關(guān)鍵幀后就可以繼續(xù)設(shè)定animation了衩辟。

animation-name

指定選用的動(dòng)畫的名字螟炫,即keyframes中的NAME。

animation-duration

同transition-duration艺晴。

animation-timing-function

同transition-timing-function昼钻。

animation-delay

同transition-delay。

animation-iteration-count

設(shè)定動(dòng)畫執(zhí)行的次數(shù)封寞,其值可以是數(shù)字也可以是infinite(循環(huán)執(zhí)行)然评。

animation-direction

設(shè)定動(dòng)畫執(zhí)行的方向,其值可以是normal(正常順序播放)或alternate(反向播放)狈究。

前綴

因?yàn)镃SS3還沒有正式發(fā)布碗淌,所以各種瀏覽器對(duì)它的支持也不盡相同。所以在設(shè)置CSS3屬性(包括@開頭的新屬性)的時(shí)候通常需要對(duì)其添加瀏覽器標(biāo)識(shí)的前綴,如-webkit- 表示W(wǎng)ebkit內(nèi)核的瀏覽器Chrome和Safari亿眠,-moz- 表示Fire Fox碎罚,-o- 表示Opera。無視IE吧纳像,在IE上的實(shí)現(xiàn)通常還是要用到濾鏡荆烈,而不是CSS3。

實(shí)例

下面的代碼模擬了上述大部分的CSS3動(dòng)畫屬性竟趾,由于只使用了–webkit- 前綴憔购,所以只能在Chrome或Safari下正常運(yùn)行。

HTML代碼:

<DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

<title>CSS3動(dòng)畫</title>
<link type="text/css"rel="stylesheet"href="animation.css"/>
</head>
<body>
<div class="rotate">rotate</div>
<div class="scale">scale</div>
<div class="translate">translate</div>
<div class="skew">skew</div>
<div class="origin">origin</div>
<div class="single">single property</div>
<div class="whole">whole property</div>
<div class="resume">change & resume</div>
<div class="animation">animation</div>
</body>
</html>

CSS3動(dòng)畫

CSS代碼:

animation.css

div {width:80px;height:30px;line-height:30px;text-align:center;background:#06f;color:#fff;font-family:Arial,Helvetica,sans-serif;-webkit-border-radius:10px;margin:5px;}
.rotate?{-webkit-transform:?rotate(0deg);}
.rotate:hover?{-webkit-transform:?rotate(90deg);}
.scale?{-webkit-transform:?scale(1);}
.scale:hover?{-webkit-transform:?scale(1.5);}
.translate?{-webkit-transform:?translate(0px,0px);}
.translate:hover?{-webkit-transform:?translate(50px,50px);}
.skew?{-webkit-transform:?skew(0);}
.skew:hover?{-webkit-transform:?skewY(20deg);}
.origin?{-webkit-transform-origin:topleft;-webkit-transform:?rotate(0);}
.origin:hover?{-webkit-transform:?rotate(45deg);}
.single?{width:150px;}
.single:hover?{background:#f00;width:200px;height:100px;line-height:100px;-webkit-transition-property:?background;-webkit-transition-duration:2s;}
.whole?{width:150px;}
.whole:hover?{width:200px;height:100px;line-height:100px;background:#f00;-webkit-transition-duration:2s;}
.resume?{width:150px;-webkit-transition-duration:2s;}
.resume:hover?{width:200px;height:100px;line-height:100px;background:#f00;-webkit-transition-duration:2s;}
.animation:hover?{-webkit-animation-name:?anim;-webkit-animation-duration:2s;-webkit-animation-timing-function:?linear;-webkit-animation-direction:?alternate;-webkit-animation-iteration-count:?infinite;}
@-webkit-keyframes?anim?{
    0%{width:80px;height:30px;line-height:30px;background:#06F;}
    50%{width:140px;height:65px;line-height:65px;background:#360;}
    100%{width:200px;height:100px;line-height:100px;background:#f00;}
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潭兽,一起剝皮案震驚了整個(gè)濱河市倦始,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌山卦,老刑警劉巖鞋邑,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異账蓉,居然都是意外死亡枚碗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門铸本,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肮雨,“玉大人,你說我怎么就攤上這事箱玷≡构妫” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵锡足,是天一觀的道長波丰。 經(jīng)常有香客問我,道長舶得,這世上最難降的妖魔是什么掰烟? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮沐批,結(jié)果婚禮上纫骑,老公的妹妹穿的比我還像新娘。我一直安慰自己九孩,他們只是感情好先馆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躺彬,像睡著了一般煤墙。 火紅的嫁衣襯著肌膚如雪缤底。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天番捂,我揣著相機(jī)與錄音个唧,去河邊找鬼。 笑死设预,一個(gè)胖子當(dāng)著我的面吹牛徙歼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鳖枕,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼魄梯,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了宾符?” 一聲冷哼從身側(cè)響起酿秸,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魏烫,沒想到半個(gè)月后辣苏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哄褒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年稀蟋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呐赡。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡退客,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出链嘀,到底是詐尸還是另有隱情萌狂,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布怀泊,位于F島的核電站茫藏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏包个。R本人自食惡果不足惜刷允,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一冤留、第九天 我趴在偏房一處隱蔽的房頂上張望碧囊。 院中可真熱鬧,春花似錦纤怒、人聲如沸糯而。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽熄驼。三九已至像寒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓜贾,已是汗流浹背诺祸。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祭芦,地道東北人筷笨。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像龟劲,于是被迫代替她去往敵國和親胃夏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color昌跌,font仰禀,text-align,li...
    wzhiq896閱讀 1,730評(píng)論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color蚕愤,font答恶,text-align,li...
    love2013閱讀 2,303評(píng)論 0 11
  • 看了很多視頻萍诱、文章亥宿,最后卻通通忘記了,別人的知識(shí)依舊是別人的砂沛,自己卻什么都沒獲得烫扼。此系列文章旨在加深自己的印象,因...
    DCbryant閱讀 1,854評(píng)論 0 4
  • 關(guān)于css3變形 CSS3變形是一些效果的集合碍庵,比如平移映企、旋轉(zhuǎn)、縮放和傾斜效果静浴,每個(gè)效果都被稱作為變形函數(shù)(Tra...
    hopevow閱讀 6,317評(píng)論 2 13
  • 類型沒要求堰氓。活動(dòng)鏈接
    Jack叔叔閱讀 469評(píng)論 1 0