1. 程式人生 > >純css製作旋轉圖片

純css製作旋轉圖片

       看到一個不錯的網站上製作了一個可以360旋轉的圖片,感覺效果不錯,於是就自己用css製作了一個,效果圖如下:


     具體實現程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css製作旋轉圖片</title>
    <style>
        .img-circle{
            margin: 50px;//只是為了不顯示在邊緣上
            font-size: 50px;
            text-align: center;
            background-color: #3f9fdb;
            width: 170px;
            height: 170px;
            line-height: 140px;
            border: 15px solid #f0f0f0;
            color: #fff;
            -webkit-transition: -webkit-transform 0.4s ease-out;
            -moz-transition: -moz-transform 0.4s ease-out;
            transition: transform 0.4s ease-out;
        }
        .img-circle:hover{
            background-color: #0071b8;
            border: 15px solid #c9dfec;
            -webkit-transform: rotate(360deg);
            -moz-transform: rotate(360deg);
            transform: rotate(360deg);
        }
    </style>
</head>
<body>
    <div class="img-circle">旋轉</div>
</body>
</html>

      接下來進行程式碼的解釋:

      1)在樣式表中,大家可以看到下面三行的程式碼,transition是一個過渡屬性,建立過程為:在預設樣式中宣告元素的初始狀態樣式;宣告過渡元素的最終樣式;在初始狀態樣式中新增過渡函式。

-webkit-transition: -webkit-transform 0.4s ease-out;
-moz-transition: -moz-transform 0.4s ease-out;
transition: transform 0.4s ease-out;
        transition主要包含的屬性有:
transition-property  指定過渡或動態模擬的CSS屬性
transition-duration  指定完成過渡所需要的時間
transition-timing-function  指定過渡函式
transition-delay  指定過渡開始出現的延遲時間

        transition-delay屬性用來定義延遲時間,也就是說改變元素屬性值之後多長時間開始執行過渡效果,預設為0。其取值:<time>為數值,單位為s(秒)或者ms(毫秒),其使用和transition-duration極其相似,也可以作用於所有元素,包括:before和:after偽元素。

       trabsition-timing-function屬性指定某種指代過渡的”緩動函式“。可以將屬性值設定為單一過渡函式、三次貝塞爾曲線和階梯函式。其中的ease-out為單一過渡函式,其他的單一過渡屬性有:

1、ease:(逐漸變慢)預設值,ease函式等同於貝塞爾曲線(0.25, 0.1, 0.25, 1.0).
2、linear:(勻速),linear 函式等同於貝塞爾曲線(0.0, 0.0, 1.0, 1.0).
3、ease-in:(加速),ease-in 函式等同於貝塞爾曲線(0.42, 0, 1.0, 1.0).
4、ease-out:(減速),ease-out 函式等同於貝塞爾曲線(0, 0, 0.58, 1.0).
5、ease-in-out:(加速然後減速),ease-in-out 函式等同於貝塞爾曲線(0.42, 0, 0.58, 1.0)
6、cubic-bezier:(該值允許你去自定義一個時間曲線), 特定的cubic-bezier曲線。 (x1, y1, x2, y2)四個值特定於曲線上點P1和點P2。所有值需在[0, 1]區域內,否則無效。
2)在樣式表中,大家可以看到下面三行的程式碼,transform 屬性向元素應用 2D 或 3D 轉換。該屬性允許我們對元素進行旋轉、縮放、移動或傾斜。
 -webkit-transform: rotate(360deg);
 -moz-transform: rotate(360deg);
 transform: rotate(360deg);
以下是transform的所有屬性: 本文中用到了rotate()方法,即進行2D旋轉。

值得注意的是,並不是所有的瀏覽器都支援這個屬性,Internet Explorer 10、Firefox、Opera 支援 transform 屬性。Internet Explorer 9 支援替代的 -ms-transform 屬性(僅適用於 2D 轉換)。Safari 和 Chrome 支援替代的 -webkit-transform 屬性(3D 和 2D 轉換)。Opera 只支援 2D 轉換。所以,我在程式碼中寫了3行,即是為了解決瀏覽器的相容性。