iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
0
自我挑戰組

30天的css animation修練系列 第 11

實作 css animation - pre load 動畫 part2

  • 分享至 

  • xImage
  •  

這次要寫的主題是頁面讀取中的動畫 part 2
這個效果其實很簡單 針對區塊做高度縮放,然後讓縮放效果依區塊先後出現
如截圖這樣的效果
https://ithelp.ithome.com.tw/upload/images/20181017/20112289QiUCRbr7Z1.png
一樣設定好基本架構

<div class="loader-wrapper">
  <span class="loader"></span>
  <span class="loader"></span>
  <span class="loader"></span>
  <span class="loader"></span>
  <span class="loader"></span>
</div>

針對架構放上基本的 css

.loader-wrapper{
  position:absolute;
  top:50%;
  left:50%;
  width:2rem;
  height:6rem;
  background:transparent;
  display:flex;
  /*讓flex內物件置中對齊*/
  align-items:center;
}

.loader:nth-of-type(n+2){
  margin:0 0px 0px 2px;
}

.loader{width:0.4rem;
height:5px;}

這邊設定 flex 是為了讓區塊並列且等高
針對每個區塊依序加背景色

.loader:nth-of-type(1){background:#ffbe4f;}

.loader:nth-of-type(2){background:#6bd2db;
}

.loader:nth-of-type(3){background:#136cc3;}

.loader:nth-of-type(4){background:#e8702a;}


.loader:nth-of-type(5){background:#0ea7b5;} 

就會長這樣 5個小方塊
https://ithelp.ithome.com.tw/upload/images/20181017/20112289QkkRt7y4AJ.png
最後把動畫放進來,這邊要注意的是用 animation-delay 這個屬性來做出先後的效果

.loader:nth-of-type(1){
  animation:height-increasing .8s -.7s linear infinite;
}

.loader:nth-of-type(2){
  animation:height-increasing .8s -.6s linear infinite;
}

.loader:nth-of-type(3){
  animation:height-increasing .8s -.5s linear infinite;
}

.loader:nth-of-type(4){
  animation:height-increasing .8s -.4s linear infinite;
}


.loader:nth-of-type(5){
  animation:height-increasing .8s -.3s linear infinite;
} 

@keyframes height-increasing{
  0%,50%{height:5px;}
  25%{height:6rem;}
}

這樣就完成了
一樣附上本次的codepen
https://codepen.io/UHU/pen/MPQGWO


上一篇
實作 css animation - pre load 動畫 part1
下一篇
實作 css animation - 收合區塊動畫
系列文
30天的css animation修練30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言