[CSS] transition 特效

  • 1477
  • 0

[CSS] transition 特效

transition

由以下四個屬性組成

  1. transition-property:設定效果的 CSS 屬性的名稱。
  2. transition-duration:設定完成效果需要多少秒或毫秒。
  3. transition-timing-function:設定速度效果的速度曲線。
  4. transition-delay:定義過渡效果何時開始。

此特效係 CSS3 版本才支援,所以使用上注意一下需求

詳細資料可以參照 W3C 或是 W3C簡體中文 說明

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(x1, y1, x2, y2):自定義cubic-bezier函數,x1、x2、y1、y2 值範圍在 0 到 1 之間。

利用 JSFiddle 的 Demo 範例

目的:達到圖片放大的特效感

HTML


            <img src="http://www.dotblogs.com.tw/Images/DotBlogsLogo.gif" />
        </div>

CSS

固定圖片外層的框架,想要看到圖片的部分


    width: 151px;
    height: 49px;
    position: absolute;
    overflow: hidden;
    border:3px solid blue;
}

接著就是圖片的樣式了,大小跟外框架一樣


    width: 151px;
    height: 49px;
    position: absolute;
    float: right;
    transition-timing-function: ease;
    transition-duration: 0.5s;
    border:3px solid red;
}

然後要在外框架 hover 進行設定,這邊把圖片的大小設大一點,

至於要多少,建議最少要比 img 樣式設定的大小,大上 margin 的設定的兩倍最好。


    width: 191px;
    height: 89px;
    position: absolute;
    float: right;
    margin: -20px 0 0 -20px;
    border:3px solid black;
}

至於為什麼要設定 margin ,如下圖的畫面,將 margin 取消後,圖片呈現會針對外框架的左上角對齊,所以才需要進行 margin 的移動

image

image

設定 margin 的畫面拉伸

image

image

此範例 下載

參考資料:

wiki_Bézier curve(貝茲曲線)

W3C Transitions 說明

線上工具:

貝茲曲線參數

DotBlogs Tags: