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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

CSS3中的元素过渡属性transition

發布時間:2023/12/16 CSS 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSS3中的元素过渡属性transition 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

過渡transition

如果當鼠標移動上div 使盒子變大并改變自己的顏色 以及 向右移動50px 向下移動50px

初始狀態

鼠標移上的狀態

以下是實現上面效果的代碼

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title><style>div {width: 100px;height: 100px;background-color: royalblue;position: absolute;}div:hover {width: 200px;height: 200px;top: 100px;left: 100px;background-color: cadetblue;</style></head><body><div></div></body> </html>

但是如果我需要 這些變化有一個過度的效果 如果是使用js編寫 是有點復雜的 而css3給我們提供了一個過渡的屬性transition屬性

W3C標準中對css3的transition這是樣描述的:“css的transition允許css的屬性值在一定的時間區間內平滑地過渡。這種效果可以在鼠標單擊、獲得焦點、被點擊或對元素任何改變中觸發,并圓滑地以動畫效果改變CSS的屬性
因此只需要在元素的樣式下 加上
transition: all 1s; /all表示監控所有的變化/

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title><style>div {width: 100px;height: 100px;background-color: royalblue;position: absolute;transition: all 1s; /*all表示監控所有的變化*/}div:hover {width: 200px;height: 200px;top: 100px;left: 100px;background-color: cadetblue;</style></head><body><div></div></body> </html>


如果是使用js需要寫一大推 使用css3 只需要幾行樣式 而且腳本方法改變多個元素樣式可能會產生沖突 元素與元素之間互不影響

transition 有四個屬性

transition-property:指定過渡或動態模擬的css屬性
transition-duration:指定過渡所需要的時間
transition-timing-function:指定過渡函數
transition-delay:指定開始出現的延遲時間
可以使用復合寫法

transition-property 指定屬性產生過渡

值描述
all 默認值所有屬性都將獲得過渡效果。
none沒有屬性會獲得過渡效果。
property定義應用過渡效果的 CSS 屬性名稱列表,列表以逗號分隔。

all是所有屬性都將獲得過渡效果。這個上面我們已經演示過下面看看 多個屬性的寫法

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title><style>div {width: 100px;height: 100px;background-color: royalblue;position: absolute;/*transition: all 1s; */ /*all表示監控所有的變化*/transition: width 1s ,top 1s;/*指定寬度和top產生過渡*/}div:hover {width: 200px;height: 200px;top: 100px;left: 100px;background-color: cadetblue;</style></head><body><div></div></body> </html>


從這我們可以看出 只有width屬性和top屬性產生了過度效果,其他的都是直接改變的

當然也不是所有的樣式都可以過渡 有的是沒有過度效果的參與過渡的屬性有

color visibility opacity vertical-align z-index clip width/height top/bottom/left/right background-color/position border-top/bottom/left/right-color/width border/letter/word-spacing font-size/weight line-height margin/padding-top/bottom/left/right max/min-height/width outline-color/width text-indent/shadow

transition-duration漸變時間 (必選)

代表幾秒鐘內過渡 如果是時間為0則沒有過度效果
比如我需要 top的變化在10內完成 只需要改變 top 時間

transition: width 1s ,top 10s;/*指定寬度和top產生過渡*/


width 屬性的過度完成的很快但是top的過都就是一個很緩慢的過程

transition-delay 控制動畫的延遲 (可選)

如果你想要延遲過渡,也就是說如果我們想要在過渡前停一小會兒 ,那么就在這個復合屬性的后添加我們需要延遲的時間 這個屬性可以對多個不同的屬性進行設置 、

比如我們 鼠標移上width在10s后開始產生過渡 top在5s后
那么

transition: width 1s 10s,top 5s 3s ;

產生的效果:

transition-timing-function 指定transition效果的轉速曲線(也就是過度的速度變化)

屬性描述
linear線性過渡,等價貝塞爾曲線(0.0, 0.0, 1.0, 1.0)
ease(默認)平滑過渡,等價貝塞爾曲線(0.25, 0.1, 0.25, 1.0)
ease-in由慢到快,等價貝塞爾曲線(0.42, 0, 1.0, 1.0)
ease-out由快到慢,等價貝塞爾曲線(0, 0, 0.58, 1.0)
ease-in-out由慢到快再到慢,等價貝塞爾曲線(0.42, 0, 0.58, 1.0)
step-start等同 steps(1, start)
step-end等同 steps(1, end)

cubic-bezier(n,n,n,n): 自定義貝塞爾曲線的效果,其中的四個參數為從0到1的數字。

如果這些屬性里都沒有你需要的你可以在瀏覽器控制臺調試你所需要的貝塞爾曲線的效果

下面是使用 cubic-bezier(0.07, 1.03, 0.98, -0.41) 產生的效果

<!DOCTYPE html> <html><head><meta charset="utf-8" /><title></title><style>div {width: 100px;height: 100px;background-color: royalblue;position: absolute;/*transition: all 1s;*/ transition: width 1s cubic-bezier(0.07, 1.03, 0.98, -0.41) ;}div:hover {width: 400px;</style></head><body><div></div></body> </html>

總結

以上是生活随笔為你收集整理的CSS3中的元素过渡属性transition的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。