1. 程式人生 > 其它 >CSS製作網頁動畫

CSS製作網頁動畫

一、transition定義動畫過度效果

/*transition:
    第一個引數:過渡效果生效的樣式屬性,all代表所有屬性變化都可以有設定的過度效果
    第二個引數:過渡時間
    第三個引數:過渡效果樣式
    (1)linear:勻速
    (2)ease:慢-》快-》慢
    (3)ease-in:慢->快
    (4)ease-out:快->慢
    (5)ease-in-out:慢-》中-》慢
* */
#myImg{ transition: all 1s ease-in-out;}

transition只是設定動畫的過度效果,並不能直接產生動畫,必須和以下其他的動畫效果結合使用才能做出動畫效果。

二、製作位置移動動畫

<head>
	<meta charset="utf-8" />
	<title>製作位置平移效果</title>
	<style type="text/css">			
		#myImg{
			transition: all 1s ease-in-out;
		}
		#myImg:hover{
			transform: translate(60px,60px);
		}
	</style>
</head>
<body>
	<img id="myImg" src="img/timg.png" width="200" height="200" />
</body>

我們可以看到,滑鼠經過圖片的時候,圖片會經過1秒鐘向右向下平移60畫素。

三、傾斜動畫

<head>
	<meta charset="UTF-8">
	<title>傾斜效果</title>
	<style type="text/css">
		#myImg{ transition: all 2s ease-in-out;}
		#myImg:hover{
			transform: skew(50deg,50deg);
		}
	</style>
</head>
<body>
	<img id="myImg" src="img/timg.png" width="200" height="200" />
</body>

我們可以看到滑鼠經過圖片的時候,圖片經過2秒鐘時間沿著 X 和 Y 軸傾斜50度和50度。

四、旋轉動畫

<head>
	<meta charset="UTF-8">
	<title>旋轉效果</title>
	<style type="text/css">
		#myImg{ transition: all 1s ease-in-out;}
		#myImg:hover{
			transform:rotate(360deg);
		}
	</style>
</head>
<body>
	<img id="myImg" src="img/timg.png" width="200" height="200" />
</body>

我們可以看到滑鼠經過圖片的時候,圖片經過1秒鐘時間旋轉了360度。

五、縮放動畫

<head>
	<meta charset="UTF-8">
	<title>縮放動畫</title>
	<style type="text/css">
		#myImg{ transition: all 1s ease-in-out;}
		#myImg:hover{
			transform:scale(1.2);
		}
	</style>
</head>
<body>
	<img id="myImg" src="img/timg.png" width="200" height="200" />
</body>

我們可以看到滑鼠經過圖片的時候,圖片經過1秒鐘時間放大1.2倍。

六、動畫組合應用

<head>
	<meta charset="UTF-8">
	<title>動畫組合應用</title>
	<style type="text/css">
		#myImg{ transition: all 1s ease-in-out;}
		#myImg:hover{
			transform:rotate(360deg) scale(1.2);
		}
	</style>
</head>
<body>
	<img id="myImg" src="img/timg.png" width="200" height="200" />
</body>

我們可以將多個動畫放在一起組合應用,我們可以看到滑鼠經過圖片的時候,圖片經過1秒鐘時間旋轉360度,同時並且放大1.2倍。

七、animation製作自定義動畫

HTML:

<img id="myImg" src="img/plane.jpg" width="180" />

CSS:

/*定義關鍵幀*/
@keyframes myKey{
	0%{ width: 180px; top: 0px; left: 0px;
	transform: rotate(0deg);}
	25%{width: 180px; top: 200px; left: 250px;
	transform: rotate(45deg);}
	50%{width: 180px; top: 400px; left: 500px;
	transform: rotate(0deg);}
	75%{width: 180px; top: 200px; left: 750px;
	transform: rotate(-45deg);}
	100%{width: 180px; top: 0px; left: 1000px;
	transform: rotate(0deg);}
}
/*建立自定義動畫*/
#myImg{ position: absolute; animation: myKey 5s linear;}

我們可以看到圖片會按照定義的關鍵幀中的5個關鍵節點,總共歷時5秒鐘,分別完成位置,旋轉角度的變換過程。