切換語言為:簡體

使用 CSS 實現打字動畫,並附帶游標閃爍效果

  • 爱糖宝
  • 2024-07-02
  • 2108
  • 0
  • 0

今天分享一段優質 CSS 程式碼片段,實現打字機般的效果或其他類似的離散動畫效果。

使用 CSS 實現打字動畫,並附帶游標閃爍效果

老規矩,先閱讀程式碼片段並思考,再看程式碼解析再思考,最後評論區留下你的見解!

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>CSS打字機效果</title>
    <style>
      .text {
        border-right: 2px solid #eee;
        font-size: 28px;
        text-align: center;
        white-space: nowrap;
        overflow: hidden;
        background: #fff;
      }
      .useAnimation {
        animation: width-change 4s steps(44) 1s normal both,
        color-change 0.5s steps(44) infinite normal;
      }

      @keyframes width-change {
        from {
          width: 0;
        }
        to {
          width: 343px;
        }
      }
      /* 豎線的閃爍效果 */
      @keyframes color-change {
        from {
          border-right-color: #363636;
        }
        to {
          border-right-color: #ffffff;
        }
      }
    </style>
  </head>
  <body>
    <p class="text useAnimation">
    歡迎投稿分享,優質程式碼片段
    </p>
  </body>
</html>


分享原因

這段程式碼展示瞭如何使用 CSS 動畫來建立文字打字效果,以及如何使游標閃爍。

這種動畫效果通常用於增強用戶界面的動態互動感。

例如:在部落格文章或新聞網站中,使用這種效果可以突出顯示重要的引用或關鍵資訊,吸引讀者的關注。

程式碼解析

1. 基本樣式設定 .text

border-right: 2px solid #eee;:新增一個右邊框,模擬游標效果。

white-space: nowrap;:防止文字換行。

overflow: hidden;:隱藏超出容器範圍的內容。

2. @keyframes width-change

from { width: 0; }:起始狀態寬度為 0。

to { width: 343px; }:結束狀態寬度為 343px,可根據文字實際寬度自行調整。

3. @keyframes color-change

from { border-right-color: #363636; }:起始狀態右邊框顏色為深灰色。

to { border-right-color: #ffffff; }:結束狀態右邊框顏色為白色。

4. 應用動畫 .useAnimation

animation:應用兩個動畫 width-change 和 color-change。

width-change 4s steps(44) 1s normal both:

動畫 width-change 執行 4 秒。

動畫延遲 1 秒開始。

normal 表示正常播放。

both 表示動畫結束時保持最終狀態。

steps(44) 會使動畫在 4 秒內完成 44 步,每步大約 0.09 秒(4 秒除以 44 步)。這會產生一種逐步增加寬度的效果,類似於打字機一個字元一個字元顯示的效果。

color-change 0.5s steps(44) infinite normal:

動畫 color-change 執行 0.5 秒。

infinite 表示動畫無限迴圈。

steps(44) 建立了一個分為 44 步的閃爍動畫,每步大約 0.011 秒(0.5 秒除以 44 步),這會使游標看起來在不斷閃爍。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.