iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
自我挑戰組

打造前端初學的知識培育庫系列 第 17

CSS -youtube 影片 - 發光漸層進度條動畫效果-Day17

  • 分享至 

  • xImage
  •  

哈囉事情是這樣的,這幾天作了幾個靜態網站,作了一些筆記,然後網路上有看到一些 CSS 教學覺得蠻有意思的,所以想來自己實作看看,哈哈!在最後面會放上參考網站及實作後的程式碼喲~
每天我都會將這篇文章裡的關鍵字、使用的語法、問題等做成清單,透過回想或許能幫助您加深記億喲/images/emoticon/emoticon08.gif

今天的關鍵字是 ...

參考影片 : https://www.youtube.com/watch?v=rdtTCVzTwSQ

  • -webkit-box-reflect
  • background: linear-gradient
  • ::before、::after
  • filter: blur( )
  • background-position
  • inset:0
  • content: ''
  • background-size

初步分析 :

  1. 建立置中的長方形。
  2. 長方形內部動畫效果 :
    1. 顏色改變紅>橙>黃>綠>藍>靛>紫>紅(最後加的顏色是避免顏色出現斷層)、向右平移、陰影放大(讓它看起來有漸層)。
    2. 有加倒影更好看。
  3. 好像有加一些效果讓顏色相間處接得自然。
  4. 使用keyframes變成不斷加載的動畫。

開始實作 :

  1. 首先先來建立環境
    建立一個div區塊
<body>
  <div class="loader"></div>
</body>

*{ } : 將預設的paddingmargin移除,並調整為border-box
body{ } : 要將內容物置中,所以需要 display: flexjustify-content: centeralign-items: center;min-height:100vh是為了確保內容能確實置中。
因為想讓進度條大一點,所以這邊有調整寬高。

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #000;
}
.loader {
  position: relative;
  width: 600px;
  height: 30px;
  background: #fff;
}

https://ithelp.ithome.com.tw/upload/images/20231005/20160847XfGvDpSAF1.png

  1. 新增-webkit-box-reflect( 倒影效果 ) :
    倒影位置在下方,模糊半徑是1px,漸變效果從透明到5%不透明的黑色
.loader {
  position: relative;
  width: 600px;
  height: 30px;
  background: #fff;
  -webkit-box-reflect: below 1px linear-gradient(transparent, #0005);
}

3.新增.loader::before偽元素,再透過positon:absolute、inset精準定位在.loader上面,background增添加由左至右依序排列的七彩顏色,background-size調整置想要的樣子。
.loader::before {
position: absolute;
content: "";
inset: 0;
background: linear-gradient(
90deg,
#fb0094,
#0000ff,
#00ff00,
#ffff00,
#fb0094,
#0000ff,
#00ff00,
#ffff00,
#fb0094
);
background-size: 500%;
https://ithelp.ithome.com.tw/upload/images/20231005/20160847OiLp1suOAw.png

background-size: 10%;的情況
https://ithelp.ithome.com.tw/upload/images/20231005/20160847ptByX7saLH.png

4.新增.loader::after偽元素,與::before相同,只是還為它增添了模糊的效果。

.loader::after {
 position: absolute;
 content: "";
 inset: 0;
 background: linear-gradient(
   90deg,
   #fb0094,
   #0000ff,
   #00ff00,
   #ffff00,
   #fb0094,
   #0000ff,
   #00ff00,
   #ffff00,
   #fb0094
 );
 background-size: 500%;
 animation: animate 20s linear infinite;
 filter: blur(10px);

https://ithelp.ithome.com.tw/upload/images/20231005/20160847jmRof7dybB.png

5.現在就差讓它動起來啦~所以我們要新增動畫效果~這代表著從起始位置0偏移500%到没有偏移的原始位置。

@keyframes animate {
  from {
    background-position: 500% 0;
  }
  to {
    background-position: 0 0;
  }
}

今天就到這邊結束囉~
明天會再來仔細講解今天的知識點喲~~/images/emoticon/emoticon30.gif

示範程式碼 : https://codepen.io/ywngjyyj-the-vuer/pen/gOZBZPx?editors=1100


上一篇
CSS -youtube 影片 - 水波文字動畫效果 - 關鍵字集合 - Day16
下一篇
CSS -youtube 影片 - 發光漸層進度條動畫效果- 關鍵字集合-Day18
系列文
打造前端初學的知識培育庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言