CSS3漸變,過渡,轉換,動畫及瀏覽器兼容問題——近日總結(二)

      ~~~~~~CSS3中的過渡,轉換和動畫結合起來使用,視覺效果會更好,所以我把這三塊的內容放在一起。

●animation(動畫)

@keyframes規則

@keyframes myfirst {
	from {
	 	 /*樣式*/
	}
	to {
		/*樣式*/
	}
}
@-webkit-keyframes myfirst {
	from {
	 	 /*樣式*/
	}
	to {
		/*樣式*/
	}
}

屬性

animation-name:規定@keyframes的名稱
animation-duration:規定動畫完成一個週期所花的時間
animation-timing-function:規定動畫的速度曲線,默認值是“ease”
      ~~~~~~linear: 動畫速度不變
      ~~~~~~ease:動畫以低速開始,加快,在結束前變慢
      ~~~~~~ease-in: 動畫以低速開始
      ~~~~~~ease-out:動畫以低速結束
      ~~~~~~ease-in-out:動畫以低速開始和結束

●Transition(過渡)

語法

transition-property: width;
transition-duration: 1s;
transition-timing-function: linear;
transition-delay: 2s;

transition: property duration timing-function delay;

屬性

屬性 描述 舉例
property 要進行過渡的元素的屬性 none、all、width
duration 要進行的時間(秒或者毫秒 1s、100ms
timing-function 過渡的曲線 linear(勻速)、ease(慢速開始,加速然後慢速結束)、ease-in(慢速開始)、ease-out(慢速結束) ease-in-out(慢速開始和結束)
delay 延遲的時間 1s、100ms

舉例

 div {
      	width: 300px;
        height: 100px;
        background-color: blue;
     }
 div:hover {
       	animation: div infinite 1s;
     }
 @keyframes div {
        0% {background-color: blue;}
        100% {background-color: blueviolet;}
     }
/*以上爲css部分*/
  <div></div> /*html部分*/

●Transform(過渡)

語法

transform: none|transform-functions1 transform-functions2 transform-functions3...;
transform-origin: x-axis y-axis z-axis;

transform

描述
translate(x,y) 從當前位置移動到left,top
translate3d(x,y,z) 在x,y,z軸移動的像素
translateX(x) 從當前位置移動到left
translateY(y) 從當前位置移動到right
translateZ(z) 移動到z軸的像素
scale(x,y) 增加(減少)寬度和高度
scale3d(x,y,z) 增加(減少)寬度,高度和z軸的值
scaleX(x) 增加(減少)寬度
scaleY(y) 增加(減少)高度
scaleZ(z) 增加(減少)z軸上的值
rotate(angle) 定義 2D 旋轉
rotate3d(x,y,z,angle) 定義 3D 旋轉
rotateX(angle) 定義沿 X 軸的 3D 旋轉
rotateY(angle) 定義沿 Y 軸的 3D 旋轉
rotateZ(angle) 定義沿 Z 軸的 3D 旋轉
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style> 
    @keyframes kefu {
        from {
            -ms-transform:scale(1,1); /* IE 9 */
            -webkit-transform: scale(1,1); /* Safari */
            transform: scale(1,1); /* 標準語法 */
        }
    
        60% {
            -ms-transform:scale(1.2,1.2); /* IE 9 */
            -webkit-transform: scale(1.2,1.2); /* Safari */
            transform: scale(1.2,1.2); /* 標準語法 */
        }
        to {
            -ms-transform:scale(1,1); /* IE 9 */
            -webkit-transform: scale(1,1); /* Safari */
            transform: scale(1,1); /* 標準語法 */
        }

    }
    #kefu {
        position: fixed;
        right: 40px;
        bottom: 50px;
        width: 150px;
        height: 48px;
        border-radius: 20px;
        box-shadow: 5px 6px 26px -6px rgba(23, 92, 255, 0.55) ;
        background: -webkit-linear-gradient(left,#2e6ef0, #1c4be6); /* Safari 5.1 - 6.0 */
        background: -o-linear-gradient(right, #2e6ef0, #1c4be6); /* Opera 11.1 - 12.0 */
        background: -moz-linear-gradient(right, #2e6ef0, #1c4be6); /* Firefox 3.6 - 15 */
        background: linear-gradient(to right, #2e6ef0, #1c4be6);
        animation: kefu 1.5s ease-in-out infinite;
    }
    #kefu a {
        text-align: center;
        color: white;
        font-size: 16px;
        line-height: 48px;
    }
    #kefu a span {
        margin-left: 5px;
    }
    </style>
</head>
<body>
    <div id="kefu">
        <a href="javascript:void(0);">
            <i class="iconfont icon-liaotian"></i>
            <span>點我諮詢</span>
        </a>
    </div>
</body>
</html>

transform-origin

transform-origin作用
這個屬性是用來改變元素變形的原點,一般用來配合旋轉來使用最多。接收參數可爲一個、兩個、三個。當爲兩個值,分別代表距離盒模型左側的值,如transform-origin: 50px 50px;,表示該容器的旋轉中心變爲以盒模型左上角爲原點,X和Y軸距離50px爲原點進行旋轉。
在這裏插入圖片描述

描述
x-axis 定義視圖被置於 X 軸的何處
y-axis 定義視圖被置於 Y 軸的何處
z-axis 定義視圖被置於 Z 軸的何處

x,y軸可能的值有:left,center,right,length,%
z軸的值是:length

發佈了5 篇原創文章 · 獲贊 1 · 訪問量 224
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章