簡易風車模型
開發工具與關鍵技術: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>
這是沒加上關鍵幀的運作圖檔
這是加上關鍵幀之後轉動時的運作圖