【开发小技巧】028—使用CSS创建卡通动画加载效果

在实际项目开发中,一般都会设计一个动画加载效果,今天这个加载效果非常有趣,可以帮助用户在等待程序加载时,缓解用户着急的情绪。

HTML代码:在本文中,设计了代码的基本结构。

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content= 
        "width=device-width, initial-scale=1.0"> 
    <title>Animated loader</title> 
    <link rel="stylesheet" href="style.css"> 
</head> 
  
<body> 
    <div class="pieces"></div> 
    <div class="one"></div> 
    <div class="two"></div> 
    <div class="eye"></div> 
    <p>GeeksforGeeks loading...</p> 
</body> 
  
</html> 

CSS代码:在本文中,卡通加载器的设计是使用CSS属性实现的。

通过逐渐从一组样式更改为另一组样式来创建动画。更改以百分比或关键字“ from”和“ to”为单位,分别与0%和100%相同。

我们可以根据需要多次更改CSS样式集。

句法:

@keyframes animationname {keyframes-selector {css-styles;}}
body{ 
    display: flex; 
    justify-content: center; 
    align-items: center; 
    min-height: 100vh; 
    background: #202020; 
  
} 
.pieces{ 
    padding: 10px; 
    border-radius: 50%; 
    background: #ffcc00; 
    position: absolute; 
    right: 40%; 
    animation: pieces 1s linear infinite; 
} 
.one{ 
    position: absolute; 
    top: 50.5%; 
    left: 30%; 
    background: yellowgreen; 
    border-radius: 0 0 125px 125px; 
    height: 125px; 
    width: 250px; 
    animation: anim1 1s linear infinite; 
} 
.two{ 
    position: absolute; 
    top: 36.5%; 
    left: 30%; 
    background: yellowgreen; 
    border-radius: 125px 125px 0 0; 
    height: 125px; 
    width: 250px; 
    animation: anim2 1s linear infinite; 
} 
.eye{ 
    position: absolute; 
    right: 60%; 
    top: 40%; 
    background: #202020; 
    padding: 12px; 
    border-radius: 50%; 
    animation: eye 1s linear infinite; 
} 
p{ 
    position: absolute; 
    font-weight: bold; 
    text-transform: uppercase; 
    font-size: 25px; 
    letter-spacing: 2px; 
    top: 53%; 
    right: 30%; 
    font-family: arial; 
    color: green; 
} 
@keyframes anim1{ 
    0%{ 
        transform: rotate(0deg); 
    } 
    50%{ 
        transform: rotate(20deg); 
    } 
    100%{ 
        transform: rotate(0deg); 
    } 
} 
@keyframes anim2{ 
    0%{ 
        transform: rotate(0deg); 
    } 
    50%{ 
        transform: rotate(-20deg); 
    } 
    100%{ 
        transform: rotate(0deg); 
    } 
} 
@keyframes eye{ 
    0%{ 
        top: 40%; 
        right: 60%; 
    } 
    50%{ 
        top: 40.3%; 
        right: 60.3%; 
    } 
    100%{ 
        top: 40%; 
        right: 60%; 
    } 
} 
@keyframes pieces{ 
    0%{ 
        right: 40%; 
    } 
    100%{ 
        right: 60%; 
    } 
} 

完整代码:这是以上两个代码部分的组合。

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
  <meta charset="UTF-8"> 
  <meta name="viewport" content= 
    "width=device-width, initial-scale=1.0">       
  <title>Animated loader</title> 
  
  <style> 
    body { 
      display: flex; 
      justify-content: center; 
      align-items: center; 
      min-height: 100vh; 
      background: #202020; 
  
    } 
  
    .pieces { 
      padding: 10px; 
      border-radius: 50%; 
      background: #ffcc00; 
      position: absolute; 
      right: 40%; 
      animation: pieces 1s linear infinite; 
    } 
  
    .one { 
      position: absolute; 
      top: 50.5%; 
      left: 30%; 
      background: yellowgreen; 
      border-radius: 0 0 125px 125px; 
      height: 125px; 
      width: 250px; 
      animation: anim1 1s linear infinite; 
    } 
  
    .two { 
      position: absolute; 
      top: 36.5%; 
      left: 30%; 
      background: yellowgreen; 
      border-radius: 125px 125px 0 0; 
      height: 125px; 
      width: 250px; 
      animation: anim2 1s linear infinite; 
    } 
  
    .eye { 
      position: absolute; 
      right: 60%; 
      top: 40%; 
      background: #202020; 
      padding: 12px; 
      border-radius: 50%; 
      animation: eye 1s linear infinite; 
    } 
  
    p { 
      position: absolute; 
      font-weight: bold; 
      text-transform: uppercase; 
      font-size: 25px; 
      letter-spacing: 2px; 
      top: 53%; 
      right: 30%; 
      font-family: arial; 
      color: green; 
    } 
  
    @keyframes anim1 { 
      0% { 
        transform: rotate(0deg); 
      } 
  
      50% { 
        transform: rotate(20deg); 
      } 
  
      100% { 
        transform: rotate(0deg); 
      } 
    } 
  
    @keyframes anim2 { 
      0% { 
        transform: rotate(0deg); 
      } 
  
      50% { 
        transform: rotate(-20deg); 
      } 
  
      100% { 
        transform: rotate(0deg); 
      } 
    } 
  
    @keyframes eye { 
      0% { 
        top: 40%; 
        right: 60%; 
      } 
  
      50% { 
        top: 40.3%; 
        right: 60.3%; 
      } 
  
      100% { 
        top: 40%; 
        right: 60%; 
      } 
    } 
  
    @keyframes pieces { 
      0% { 
        right: 40%; 
      } 
  
      100% { 
        right: 60%; 
      } 
    } 
</style> 
</head> 
  
<body> 
  <div class="pieces"></div> 
  <div class="one"></div> 
  <div class="two"></div> 
  <div class="eye"></div> 
  
  <p>GeeksforGeeks loading...</p> 
</body> 
  
</html> 

最终效果如下:

本文完~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值