天天看點

css過渡轉變動畫,css3過渡(transition)和動畫(animation)變換(transform )

1. 過渡(transition)

菜鳥教程:CSS3 過渡是元素從一種樣式逐漸改變為另一種的效果。

transition: CSS屬性名 持續時間 過渡效果(預設ease) 延遲時間(預設0);

transition:transition-property transition-duration transition-timing-function transition-timing-function;

| 屬性 | 描述

| transition | 簡寫屬性,用于在一個屬性中設定四個過渡屬性。

| transition-property | 規定應用過渡的 CSS 屬性的名稱。

| transition-duration | 定義過渡效果花費的時間。預設是 0。

| transition-timing-function | 規定過渡效果的時間曲線。預設是 "ease"。

// 滑鼠滑過box,延遲0.2秒 寬度從50px過渡到100px

// css

.box {

width: 50px;

height: 50px;

background: red;

transition: width 1s ease .2s;

}

// html

.box:hover {

width: 100px;

}

transition-timing-function 規定過渡效果的時間曲線。

值 屬性

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 之間的數值。

2. 動畫(animation)

animation:動畫名稱(keyframe 名稱),花費時間,運動曲線(預設ease),動畫延遲(預設0),播放次數(預設1),是否反向播放動畫(預設normal),是否暫停動畫(預設running)

| 值 | 描述 |

|

animation-fill-mode : none | forwards | backwards | both;

.box1 {

width: 150px;

height: 150px;

border-radius: 50%;

background: red;

margin: 100px auto;

animation: animation1 5s ease-in 1s;

animation-fill-mode: backwards;

}

@keyframes animation1 {

0% {

background: red;

opacity: 1;

}

50% {

background: yellow;

opacity: 0.5;

}

100% {

background: blue;

opacity: 0;

}

}

3. transform 轉換

transform 屬性向元素應用 2D 或 3D 轉換。該屬性允許我們對元素進行旋轉、縮放、移動或傾斜。

transform-origin: bottom right;

旋轉rotate、 transform-origin: bottom right;

transform: rotate(45deg);

.box2 {

width: 200px;

height: 200px;

margin: 100px auto;

transform: rotate(45deg);

background: url('./kaipin.jpg') 0 0 repeat;

background-size: cover;

}

移動translate

transform: translate(100px,100px);

translateX() : 通過給定一個X方向上的數目指定一個translation。隻向x軸進行移動元素,同樣其基點是元素中心點,也可以根據transform-origin改變基點位置。

translateY() :通過給定Y方向的數目指定一個translation。隻向Y軸進行移動,基點在元素心點,可以通過transform-origin改變基點位置。

縮放scale

transform: scale(0.6);

scale(x,y)使元素水準方向和垂直方向同時縮放(也就是X軸和Y軸同時縮放);scaleX(x)元素僅水準方向縮放(X軸縮放);scaleY(y)元素僅垂直方向縮放(Y軸縮放)

扭曲skew

transform: skew(20deg,30deg);

skew(x,y)使元素在水準和垂直方向同時扭曲(X軸和Y軸同時按一定的角度值進行扭曲變形);skewX(x)僅使元素在水準方向扭曲變形(X軸扭曲變形);skewY(y)僅使元素在垂直方向扭曲變形(Y軸扭曲變形)

矩陣matrix