天天看點

讓風車轉動起來

簡易風車模型

開發工具與關鍵技術:DW-border屬性+關鍵幀
作者:徐晶旗
撰寫時間:2019年2月6日 
           

覺得風車轉起來挺好看的,然後就想着其實自己可以嘗試做一個,最後就做了一個很簡單的出來,風車首先要想到要有葉子,中心軸和柱子,柱子和葉子應該和中心軸連在一起,然後隻要給中心軸設定一個關鍵幀的樣式讓它可以旋轉,葉子就可以随中心軸一起旋轉了。

我在這裡設定的類“winnower”表示一個大盒子,把整個内容包裹起來,“post”表示柱子,“center”表示中心軸,“leaf”表示葉子,我給了三個leaf的類,表示有三片葉子,“foundation”表示柱子下面的支撐點。然後給它們設定樣式。

給柱子設定寬高,背景顔色以及定位,給中心軸設定一個動畫函數和動畫時長,再用關鍵幀@keyframes來控制和實作它的動畫效果,這裡需用到transform:rotate;實作它的旋轉效果,0%時開始旋轉,100%時結束旋轉,再給葉子設定樣式讓它看上去有點像葉子,在這裡我給它設定成了三角形的樣子,給柱子下面的支撐點設定成了一個橢圓形的樣子,大緻就是這樣了。

代碼如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>簡易風車模型</title>
</head>
<style>
	.win{
		height:500px;
		width:500px;
	}
	.post{
		height:100px;
		width:5px;
		background:rgba(197,89,90,1.00);
		top:100px;
		left:100px;
		position: absolute;
	}
	.round{
		height:10px;
		width:10px;
		left:-3px;
		top:-1px;
		background:#ffe4ff;
		border-radius: 100%;
		position:absolute;
		animation: cute 10s linear infinite;
	}
	@keyframes cute{
		0%{
			transform: rotate(0deg);
		}
		100%{
			transform: rotate(360deg);
		}
	}
	.leaf1{
		border-width:0 0 32px 68px;
		left:6px;
		border-style:none solid solid solid;
		border-color:transparent transparent transparent aquamarine;
		position:absolute;
	}
	.leaf2{
		border-width:0 0 68px 32px;
		left:4px;
		top:-61px;
		border-style:none solid solid solid;
		border-color:transparent transparent transparent lightgreen;
		position:absolute;
	}
	.leaf3{
		border-width:0 0 32px 68px;
		left:-55px;
		border-style:none solid solid solid;
		border-color:transparent transparent transparent lightpink;
		position:absolute;
	}
	.garden{
		width:10px;
		height:4px;
	    border-radius: 50%;
		top:97px;
		left:-3px;
		position: absolute;
		background: rgba(197,89,90,1.00);
	}
</style>
<body>
</body>
<div class="win">
	<div class="post">
		<div class="round">
			<div class="leaf1"></div>
			<div class="leaf2"></div>
			<div class="leaf3"></div>
		</div>
		<div class="garden">
			</div>
	</div>
</div>
</html>

           

這是沒加上關鍵幀的運作圖檔

讓風車轉動起來

這是加上關鍵幀之後轉動時的運作圖

讓風車轉動起來
讓風車轉動起來