css hover变成手_web前端入门到实战:彻底掌握css动画「transition」
馬上就2020年了,不知道小伙伴們今年學習了css3動畫了嗎?
說起來css動畫是一個很尬的事,一方面因為公司用css動畫比較少,另一方面大部分開發者習慣了用JavaScript來做動畫,所以就導致了許多程序員比較排斥來學習css動畫(至少我是),但是一個不懂css動畫的前端工程師不能稱之為掌握css3,其實當你真正學習css動畫之后,你會被它的魅力所吸引的,它可以減少代碼量、提高性能。
話不多說,馬上和我一起去學習今天的主角transition吧!
transition 語法
值描述transition-durationtransition效果需要指定多少秒或毫秒才能完成transition-property指定CSS屬性的name,transition效果transition-timing-function指定transition效果的轉速曲線transition-delay定義transition效果開始的時候
transition翻譯成中文是過渡的意思,顧名思義,它就是專門做過渡動畫的,比如一些放大縮小,隱藏顯示等,下面我們一起來學習一下他的語法。
transition-duration:transition效果需要指定多少秒或毫秒才能完成
div{ width:100px; height:100px; border-radius: 50%; background:#f40; transition-duration:1s;}div:hover{ height:150px; width:150px;}這是transition最基本的用法,transition-duration為動畫執行所需的時間,這段代碼的意思就是鼠標移入,div的寬高就會都變成150px
transition-property:指定CSS屬性的name,transition效果
div{ width:100px; height:100px; border-radius: 50%; background:#f40; transition-duration:1s; transition-property:width;}div:hover{ height:150px; width:150px;}這里transition-property值僅為width,意思是只給width加動畫,所以會呈現這種效果,同樣如果換成了height,那么將會是變高才有動畫。
我們發現,第一個案例我們并沒有寫transition-property,但是案例中width和height屬性是同時變化的,那是因為transition-property的默認值為all,只要不寫這個屬性,那就是全部變化都會執行動畫。
transition-timing-function:指定transition效果的轉速曲線
div{ width:100px; height:50px; background:#f40; transition-duration:2s; transition-timing-function:ease-in-out;}div:hover{ width:250px;}transition-timing-function的作用就是改變動畫在每一幀的快慢。這里transition-timing-function僅展示值為ease-in-out的動畫效果,可以理解為慢-快-慢。其他的不做展示,可以參考下表進行理解。
值描述速度linear(默認屬性)規定以相同速度開始至結束的過渡效果(等于 cubic-bezier(0,0,1,1))。勻速ease規定慢速開始,然后變快,然后慢速結束的過渡效果(cubic-bezier(0.25,0.1,0.25,1))。快-慢-慢ease-in規定以慢速開始的過渡效果(等于 cubic-bezier(0.42,0,1,1))。快-快ease-out規定以慢速結束的過渡效果(等于 cubic-bezier(0,0,0.58,1))。慢-慢ease-in-out規定以慢速開始和結束的過渡效果(等于 cubic-bezier(0.42,0,0.58,1))。慢-快-慢cubic-bezier(n,n,n,n)在 cubic-bezier 函數中定義自己的值。可能的值是 0 至 1 之間的數值。自定義
transition-delay:定義transition效果開始的時候
div{ width:100px; height:100px; border-radius: 50%; background:#f40; transition-duration:1s; transition-delay:1s;}div:hover{ height:150px; width:150px;}這里transition-delay的值為1s,意思是動畫將在延遲一秒后執行。
今天我們一共學習了四個屬性值,他們都是屬于transition屬性的,這里給出屬性值在transition中的簡寫方式。
transition: property duration timing-function delay;
div{ transition:all 1s ease-in-out 2s;}那么這里的意思就是所有屬性都加入持續一秒,緩進緩出的動畫,并在兩秒鐘后開始執行。
結論
經過以上的學習,相信你已經初步了解了transition的用法,transition用來過渡再好不過了,但是僅靠它做不了一些炫酷的動畫,我將在接下來的文章繼續為你講解animation(動畫)、translate(移動)以及transform(變形),跟進我的腳步吧,跟我一起在2020年前掌握css動畫!
點擊【右上角,關注 子瑜說IT 】持續更新IT資訊以及web前端開發教學
8年開發老碼農福利贈送:網頁制作,網站開發,web前端開發,從最零基礎開始的的HTML+CSS+JavaScript。jQuery,Ajax,node,angular框架等到移動端小程序項目實戰【視頻+工具+系統路線圖】都有整理,送給每一位對編程感興趣的小伙伴
獲取方式:
右上角有私信,請私信發我:01 即可獲取!
總結
以上是生活随笔為你收集整理的css hover变成手_web前端入门到实战:彻底掌握css动画「transition」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片操作案例:python 批量更改图像
- 下一篇: python同步应用:多个线程有序执行