純粋なHTML+CSSでタイピング効果を実現

純粋なHTML+CSSでタイピング効果を実現

この記事は主に、一定の参考値を持つ純粋な HTML + CSS によって実現されるタイピング効果を紹介します。ご興味があれば、さらに詳しく知ることができます。

レンダリング

分析する

アニメーションは、次の 3 つの異なるレベルとして考えることができます。

  • 下部のテキスト
  • 背景が中央のテキストをブロックしている
  • 上部のカーソル

テキストは静的ですが、中央の背景と上部のカーソルは動的です。
最初は、背景がすべてのテキストを覆い、カーソルは左端にあります。
アニメーションが進むにつれて、背景とカーソルが同じペースで左から右に移動します。
アニメーションが終了すると、背景がテキストを隠さなくなり、カーソルが右端で点滅します。

コード

html

<div class="text">こんにちは、世界!</div>

CS

:根 {
    /* 文字数 */
    --ステップ: 12;
    /* アニメーション時間 */
    --期間: 2.5秒;
    /* フォントサイズ */
    --フォントサイズ: 50px;
    /* カーソルサイズ */
    --カーソルサイズ: 20px;
}

。文章 {
    色: #333;;
    位置: 相対的;
    表示: インラインブロック;
    フォント ファミリ: 'Courier New'、Courier、等幅フォント;
    フォントサイズ: var(--fontSize);
    行の高さ: 1;
}

.text::after {
    コンテンツ: '';
    幅: var(--cursorSize);
    高さ: var(--fontSize);
    背景色: 黒;
    zインデックス: 2;
    位置: 絶対;
    アニメーション: 1秒点滅 var(--duration) step-end infinite,
               moveCursor var(--duration) steps(var(--steps)) 前進します。
}

.text::before {
    コンテンツ: '';
    幅: 100%;
    高さ: var(--fontSize);
    zインデックス: 1;
    位置: 絶対;
    背景: linear-gradient(#fff, #fff) 繰り返しなし 右上;
    アニメーション: showText var(--duration) steps(var(--steps)) forwards;
}

/* カーソル点滅アニメーション*/
@keyframes 点滅 {
    0% {
        背景色: 黒;
    }
    50% {
        背景色: 透明;
    }
    100% {
        背景色: 黒;
    }
}

/* カーソル移動アニメーション*/
@keyframes カーソルを移動 {
    0% {
        残り: 0%;
    }
    100% {
        左: 100%;
    }
}

/* 背景移動アニメーション */
@keyframes 表示テキスト {
    0% {
        背景サイズ: 100% 100%;
    }
    100% {
        背景サイズ: 0% 100%;
    }
}

フォントは等幅フォントである必要があることに注意してください。カーソルが毎回移動する距離は、文字数/全体の幅によって決まるためです。

オンラインデモ

純粋な HTML+CSS でタイピング エフェクトを実現する方法については、これで終わりです。より関連性の高い HTML+CSS タイピング エフェクト コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

<<:  サラウンドリフレクションロード効果を実現するHTML+CSS

>>:  ナビゲーションバーのドロップダウンメニューのサンプルコードを実装するためのHTML+CSS

推薦する

MySQL サーバー 5.7.20 のインストールと設定方法のグラフィック チュートリアル

この記事ではMySQL 5.7.20のインストールと設定方法を記録し、皆さんと共有します1. MyS...

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

高度な CSS の 3 つの方法を使用して複数行の省略を実装するサンプル コード

序文これは古くからの要望ですが、オンラインで解決策を探している人はまだ多く、特に検索結果の上位にラン...

MySQL および Oracle のバッチ挿入 SQL の一般的な記述例

目次例えば:一般的な執筆:要約する例えば:次に、データベースのUSERテーブルにUserオブジェクト...

Linux でタスク用のカスタム システム トレイ インジケーターを作成する

システム トレイ アイコンは、今日でも魔法のような機能です。アイコンを右クリックして目的のアクション...

Vueは右上隅の時間表示のリアルタイム更新を実装します

この記事の例では、右上隅の時間表示のリアルタイム更新を実現するためのVueの具体的なコードを紹介しま...

MySQL 文字セットの概要

目次文字セット比較ルール4つのレベルの文字セットと比較規則3つのシステム変数このノートは主にMySQ...

MySQLでストアドプロシージャをデバッグする最も簡単な方法

同僚から、一時テーブルを使用して変数データを挿入して表示する方法を教わったことがありますが、この方法...

スタイリッシュなウェブページデザインを作成する方法(グラフィックチュートリアル)

「壮大」という言葉は、おそらく現代のデザイナーが最も聞きたくない言葉でしょう。デザイナー:「デザイン...

画像を表示したり非表示にしたりするための JavaScript

JavaScriptは画像を表示したり非表示にしたりしますが、参考までに具体的な内容は次のとおりで...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

/etc/my.confファイルで、[mysqld]の下に次の行を追加します: skip-grant...