如何使用CSS建立來電動畫效果?


級聯樣式表 (CSS) 使開發人員能夠為網頁建立視覺效果,使其更具吸引力且使用者友好。CSS 提供各種屬性,例如顏色、flexbox、網格、動畫、陰影等,以設定元素的樣式,從而建立對許多使用者具有吸引力且使用者友好的網站。

在本文中,我們討論瞭如何使用 HTML 和 CSS 設計來電動畫效果。為了建立此效果,我們將使用 CSS 動畫屬性和 box-shadow 屬性。

CSS 動畫

它使開發人員能夠為 HTML 元素新增動畫效果,例如移動、振動等,從而為我們的網頁增添美感。

語法

animation: animation-name | animation-duration | speed; 

CSS box-shadow 屬性

它使開發人員能夠在一側提供深色陰影,而在另一側提供淺色陰影。

語法

box-shadow: values;

此屬性的值為:

  • - 元素上不顯示陰影。這是預設值。

  • 水平偏移 - 將陰影從元素水平移動多遠。offset-X 的正值會在元素右側建立陰影。而負值則將陰影置於元素左側。

  • 垂直偏移 - 將陰影從元素垂直移動多遠。offset-Y 的正值會在元素上方建立陰影,而負值則會在元素下方建立陰影。

  • 模糊半徑 - 它指定陰影的清晰度。數字越大,陰影越模糊,這意味著陰影會更大更淺。

  • 擴充套件半徑 - 它指定陰影的大小。如果其值為正,則大小增加。如果為負,則大小減小。

  • 顏色 - 它指定陰影的顏色。

  • 內陰影 - 它使開發人員能夠建立陰影,從而使元素的內容看起來位於邊框下方。因此,它在邊框內建立陰影。

示例

<!DOCTYPE html>
<html>
<head>
   <style>
      #demo {
         border: 5px solid;
         padding: 10px 15px;
         box-shadow: -5px -10px 0px 5px yellow;
      }
   </style>
</head>
<body>
   <h1>The box-shadow property</h1>
   <article id="demo">
      <p>This is an article element with a shadow. It contains four values that are offset-X (horizontal distance), offset-Y (vertical distance), spread radius and color. </p>
   </article>
</body>
</html>

建立來電動畫效果

在下面的示例中,我們嘗試使用 CSS Font Awesome 圖示顯示正在響鈴的電話圖示。

然後,我們使用 box-shadow 屬性和 CSS 動畫來建立響鈴效果。為了控制動畫的順序,我們使用了 @keyframes。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Incoming Call Animation</title>
   <link rel="stylesheet" href= "https://pro.fontawesome.com/releases/v5.10.0/css/all.css">
   <style>
      body{
         height: 80%;
         margin: 10px;
         padding: 0;
         display: flex;
         align-items: center;
         justify-content: center;
         background: black;
      }
      section{
         position: absolute;
         top: 10%;
         display: flex;
         justify-content: center;
         align-items: center;
         border: 2px solid orange;
         height: 65%;
         width: 40%;
      }
      .call{
         position: relative;
         background: black;
         color: orange;
         font-size: 35px;
         font-weight: bold;
         width: 70px;
         height: 70px;
         border-radius: 100%;
         border: solid 5px black;
         animation: anim 2s ease-in infinite, vibration 2s ease-in infinite;
      }
      .img{
         position: absolute;
         top: 20px;
         left: 20px;
         height: 60px;
         width: 50px;
      }
      @keyframes anim {
         0% {
            box-shadow: 0 1px 0 4px #ffffff;
         }
         10%{
            box-shadow: 0 1px 0 8px rgba(255, 165, 0, 1);
         }
         25% {
            box-shadow: 0 1px 0 12px rgba(255, 210, 128, 1), 0 1px 0 16px rgba(255, 201, 102, 1);
         }
         50% {
            box-shadow: 0 2px 5px 10px rgba(255, 184, 51, 1),  0 2px 5px 23px rgba(248, 248, 255, 1);
         }
      }
      @keyframes vibration {
         0% { transform: rotate(0deg); }
         25% { transform: rotate(20deg); }
         50% { transform: rotate(0deg); }
         75% { transform: rotate(-15deg); }
         100% { transform: rotate(0deg); }
      }
   </style>
</head>
<body>
   <section>
      <div class= "call">
         <i class= "fas fa-solid fa-phone img"> </i>
      </div>
   </section>
</body>
</html>

來電圖示將顯示在網頁上,並且由於動畫,將觀察到響鈴效果。

結論

在現代科技市場中,客戶需要更多網站參與。此時,動畫在增強溝通方面發揮著至關重要的作用。動畫的互動性促進了使用者互動,從而改善了使用者體驗。如果您希望您的網站在競爭中脫穎而出,同時又受到目標受眾的喜愛,那麼聘請頂級網站開發公司在您的網站中加入動畫將大有裨益。

更新於:2023年2月22日

711 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告