日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

10分鐘入門CSS3 Animation

簡介
Animation可以讓你不用依賴javascript或jquery,用純CSS在網(wǎng)頁中輕松實現(xiàn)各種動畫效果 。
兼容性
animation在絕大部分主流瀏覽器都得到了很好的支持!還在兼容IE9的同學(xué)要謹(jǐn)慎使用 。

10分鐘入門CSS3 Animation


CSS 坐標(biāo)系
在了解animtion之前,我們有必要先了解css的坐標(biāo)系,因為很多的animation效果都和元素的坐標(biāo)密切相關(guān) 。在css3中網(wǎng)頁不再是一個二維平面,而是一個三維空間,水平方向、豎直方向和垂直屏幕方向分別對應(yīng)三維坐標(biāo)系的x,y,z軸,如下圖所示 。箭頭方向為正向,反之為負(fù)向(注意y軸方向與常規(guī)笛卡爾坐標(biāo)系相反) 。
10分鐘入門CSS3 Animation


Animations
1. Transforms
transform中文譯為“轉(zhuǎn)換”,但我更傾向于稱呼它“變形”(大名鼎鼎的變形金剛叫transformer) 。我們可以使用transform function使html元素產(chǎn)生各種各樣的變形,比如平移、縮放、旋轉(zhuǎn)、扭曲等,而且不會影響正常的文檔流(document flow) 。
(1) Translate
Translate一般譯為“翻譯”,但在css里面一般用作“平移”,因為translate用于改變html元素的在3d坐標(biāo)系位置 。translate支持在坐標(biāo)系內(nèi)任意方向移動(通過任意組合x、y、z方向的向量),單位可以是長度單位和百分比(百分比是相對于被平移的元素自身尺寸,x軸是相對于width,y軸是相對于height,而在z軸方向由于元素是沒有‘厚度’的,所以對于z方向不能用百分比表示),例如:
10分鐘入門CSS3 Animation


注意:
10分鐘入門CSS3 Animation


(2) Scale
Scale意為“縮放”,顧名思義,是用于改變元素的大小 。例如:
10分鐘入門CSS3 Animation



10分鐘入門CSS3 Animation


(3) Rotate
Rotate意為“旋轉(zhuǎn)”,支持將元素以x、y、z為軸旋轉(zhuǎn),旋轉(zhuǎn)正方向為面朝坐標(biāo)軸正向逆時針方向,可參考上面坐標(biāo)系示意圖 。rotate方法接收一個角度作為參數(shù),角度>0 正向旋轉(zhuǎn),角度<0 負(fù)向旋轉(zhuǎn),例如:
10分鐘入門CSS3 Animation



10分鐘入門CSS3 Animation


(4) 組合
我們可以將不同的transform方法組合起來使用,如:
10分鐘入門CSS3 Animation


組合方法的執(zhí)行順序是從右往左,即先執(zhí)行scale,然后rotate,最后translate,產(chǎn)生的效果是逐次累加的 。方法書寫的順序?qū)ψ詈笮Ч泻艽蟮挠绊?,看下面例子,沿y軸平移和放大,順序不同,產(chǎn)生的結(jié)果有明顯差別:
10分鐘入門CSS3 Animation


如果先translate再scale,平移的距離也將被等比例縮放,而先scale再translate則不會 。所以在使用transform需按照 translate -> rotate -> scale 的順序書寫,讓scale先執(zhí)行,以免放大translate的效果,而rotate先translate執(zhí)行以防止帶著平移的距離一起轉(zhuǎn)動 。我覺得這是transform目前不方便的地方,因為方法之間相互干擾并不容易理解,書寫順序也不容易記住 。在未來有望通過使用獨立的css transform屬性解決這一問題,因為獨立的transform屬性對書寫順序沒有依賴,方法之間彼此不會干擾 。
Transition
Transition翻譯為“過渡”,強(qiáng)調(diào)的是過程 。在css中指在一段時間內(nèi),元素從一個狀態(tài)(對應(yīng)一個css屬性)過渡到另一個狀態(tài)的動態(tài)過程 。我們可以決定以何種方式過渡過渡和花費多少時間 。

推薦閱讀