CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
剛開始W3C CSS Workgroup拒絕將CSS3 transition與animation加入官方標準,一些成員認為過渡效果和動畫并非樣式屬性,而且已經可以用腳本實現。所以請大家明白,特別是Web前端開發員,用CSS3做一些過渡效果和動畫,并不比運用JS腳本實現要好(個人認為:用CSS只不過讓不懂JS的人員(設計人員)也能做動畫,而且使用瀏覽器封裝好的方法,但使用JS腳本可以更靈活,在性能上也能去優化)。
1.Transition
Transition是一種直觀上的效果,讓DOM元素的某個屬性在固定時間內從一舊值到一新值。目前Firefox、Opera、Safari和Chrome都支持transition ,IE還不支持。
語法:transition:?property duration timing-function delay;
說明:
| Value | Description |
| transition-property | 指定要改變CSS屬性的名稱 |
| transition-duration | 指定過渡效果要花多少時間(s/ms) |
| transition-timing-function | 指定過渡效果的速度 |
| transition-delay | 定義過渡效果的延遲時間. |
實例:
<style type="text/css"> div { width:100px; height:100px; background:red; transition:width 2s; -moz-transition:width 2s; /* Firefox 4 */ -webkit-transition:width 2s; /* Safari and Chrome */ -o-transition:width 2s; /* Opera */ }div:hover { width:300px; } </style> <div></div>2. Animation
CSS動畫(Animations)簡單說就是在一段固定的動畫時間內暗中在某一頻率內改變其CSS某個或某些值,從而達到視覺上的轉換動畫效果。Animations的很多方面都是可以控制的,包括動畫運行時間,開始值和結束值,還有動畫的暫停和延遲其開始時間等。
目前支持Animation的瀏覽器有:Firefox、 Safari 和 Chrome,IE和Opera還不支持。下面看下一個簡單的實例:
<style type="text/css"> div { width:100px; height:100px; background:red; position:relative; animation:mymove 5s infinite; -moz-animation:mymove 5s infinite; /*Firefox*/ -webkit-animation:mymove 5s infinite; /*Safari and Chrome*/ } @keyframes mymove { from {left:0px;} to {left:200px;} } @-moz-keyframes mymove /*Firefox*/ { from {left:0px;} to {left:200px;} } @-webkit-keyframes mymove /*Safari and Chrome*/ { from {left:0px;} to {left:200px;} } </style> <div></div>語法:animation:?name duration timing-function delay iteration-count direction;
說明:
| Value | Description |
| animation-name | 指定動畫幀的名稱 |
| animation-duration | 指定動畫運行的時間:秒(s)和毫秒(ms) |
| animation-timing-function | 指定動畫運行的速度 |
| animation-delay | 指定動畫的延遲時間 |
| animation-iteration-count | 指定動畫的重復數 |
| animation-direction | 指定動畫是否以相反的方向運行動畫 |
接下來和大家分享一個webkit.org上面的一個DEMO,此DEMO利用Transform和Animation,加少量Javascript做成的3D動畫效果,有興趣的同學可去參考以下網址:http://www.webkit.org/blog-files/3d-transforms/poster-circle.html。只可惜只有webkit內核的瀏覽器才能看到相關3D動畫效果。
總結
以上是生活随笔為你收集整理的CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css3中transition属性详解
- 下一篇: CSS3属性之多栏布局column