日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

css3动画模块transform transition animation属性解释

發(fā)布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 css3动画模块transform transition animation属性解释 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先來看下對各大瀏覽器的兼容性

?IEFirefoxSafariChromeOpera
CSS 2D Transformno3.53.22.010.5
CSS 3D Transformnono4.* (Mac)nono
Transitionno3.73.22.010.5
Animationnono4.02.0no

transform

這個比較簡單,控制元素進行平面上的二維變換,有三個屬性:

1. 旋轉 rotate()。對元素按順時針或逆時針方向進行旋轉,其值為正數(shù)時,表示按順時針方向旋轉,其值為負數(shù)時,表示按逆時針方向旋轉。單位為度數(shù)(deg)。例如:

? ?ps:旋轉屬性可以實現(xiàn)那種常見的三角的tips效果。把一個正方形旋轉45度就變成◆了,自己試試吧

2. 偏斜?skew(x,y)。有兩個參數(shù),第一個表示按x軸方向傾斜的度數(shù),第二個是y軸的度數(shù)。主要的區(qū)別是,x軸的值若為正數(shù),表示逆時針偏斜,若為負數(shù),表示順時針偏斜;而y軸的值跟x軸的剛好相反,正為順,負為逆。

3. 平移?translate(x,y)。平移是一種利用x和y坐標值(單位為px)定位元素的方式,注意這個跟position的定位不一樣,它參照的位置是它本身,但position參照的是父級。

transform:rotate(45deg); /*順時針旋轉45度*/ transform:rotate(-45deg); /*逆時針旋轉45度*/transform:skew(30deg,10deg); /*在x軸方向逆時針偏斜30度,在y軸方向順時針偏斜10度*/transform:translate(10px,15px); /*向左移動10px,向下移動15px*//*多個transform類型的設置可以寫一起的,之間用空格分隔,例如上面的可以這樣寫:*/ transform:rotate(45deg) skew(30deg,10deg) translate(10px,15px)

?transition

官方的解釋是“允許CSS的屬性值在一定的時間區(qū)間內(nèi)平滑地過渡。這種效果可以在鼠標單擊、獲得焦點、被點擊或者對元素的任何改變中觸發(fā),并以圓滑的動畫效果改變CSS的屬性值”。比如原來的背景是#fff,hover時是#000,如果用了transition,就是從#fff平滑過渡成#000(發(fā)揮自己的想象力想一下吧)。

transition可以分解成4個屬性:

1. transtion-property 用于指定哪些屬性值改變時顯示transition動畫效果。none表示沒有,all表示所有,或者用逗號分隔需要指定的屬性,如transition-property: background,width,height.

2. transition-duration 表示動畫持續(xù)時間,可以設置多個值,中間用逗號分隔,其中每個值對應transition-perproty設置的每個屬性。例如:

?

transition-perproty: width,height; transition-duration:1s,0.5s /*表示寬度的轉換動畫持續(xù)的時間為1s,高度轉換動畫持續(xù)的時間為0.5s*/

?

3. transition-timing-function 表示轉換動畫的效果,有多個值可以選擇:

  1)Linear 指定一個線性漸變

  2)ease 指定一個逐漸慢下來的動畫

  3)ease-in 指定一個先慢后快的漸變動畫

  4)ease-out 指定一個先快后慢的漸變動畫

  5)ease-in-out 指定一個先慢后快再慢的漸變動畫

  6)cubic-bezier 使用貝塞爾曲線來指定一個復雜的動畫漸變效果(這個效果很不錯,可以做比較復雜的效果,附帶一個制作效果的網(wǎng)站:http://matthewlein.com/ceaser/)

4. transtion-delay 指定在動畫開始前等待的時間,不需要時可以省略。

animation

animation比transition更接近動畫的含義,可以為animation設置多幀的效果,然后把這些幀組合、變換,按動畫效果顯示出來。共有6個屬性,在了解它的屬性之前,首先有必要先熟悉一下關鍵幀keyframes這個屬性。

keyframes 從字面上看,keyframes表示關鍵幀的意思。在flash里面也存在這個概念,我們可以想想一張gif動畫由一幀一幀的圖像組成。在CSS3里,我們用keyframes描述第一幀的效果,用animation描述每一幀如何組合在一起以及表現(xiàn)的效果。格式如下:

?

@keyframes 動畫標識名{ /*動畫標識名將被animation-name屬性所引用*//*每一幀的動畫效果,可以通過百分比數(shù)值加樣式的形式來定義*/0%{background-color: white;}50%{background-color: red;} 100%{background-color: black; } }
/*我們可以把百分比數(shù)值看做第一幀在動畫中時間軸的位置,0%在時間軸的開始,50%在時間軸的正中,100%在時間軸的終點。那以上的動畫效果就是,元素的背景顏色會從白色漸變成紅色,再從紅色漸變成黑色。0%和100%也可以分別用form和to來代替*/
@keyframes 動畫標識名{from{background-color: white;}50%{background-color: red;} to{background-color: black; } }

?屬性:

1. animation-name 此屬性指定動畫應對的keyframes,比如設置animation-name為loading,那么動畫就對應@keyframes loading所聲明的關鍵幀。如果沒有定義關鍵幀,動畫將不會生效。

2. animation-duration 定義一次動畫的持續(xù)時間,默認值為0

3. animation-delay 定義從觸發(fā)到開始動畫的時間

4.?animation-timing-function 定義動畫顯示的效果,例如先快后慢,先慢后快等,屬性值與transition-timing-function相同

5.?animation-iteration-count 該屬性定義動畫循環(huán)的次數(shù),默認為1。我們可以用infinite來使動畫無限次循環(huán),這是transition動畫所無法支持的。

6. animation-direction 定義動畫播放的方向,默認值為normal,代表每次動畫都向前播放。另外一個值是alternate,第偶數(shù)次動畫向前播放,第奇數(shù)次逆向播放。

?

要注意在寫以上的屬性時,都要根據(jù)不同的瀏覽器加上前綴,-webkit-,-o-,-ms-,-moz-

附帶相關鏈接:

http://www.w3cplus.com/content/css3-transform(transform)

http://www.cnblogs.com/lianjun/archive/2011/09/30/2196912.html(transition)

http://www.cnblogs.com/lianjun/archive/2011/10/07/2200315.html(animation)

總結

以上是生活随笔為你收集整理的css3动画模块transform transition animation属性解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。