純粋な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

推薦する

JSでユーザーを追跡する方法

目次1. 同期AJAX 2. 非同期AJAX 3. ユーザーのクリックを追跡する4. リバウンドトラ...

Xshell にショートカット コマンドを追加する方法

便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...

MySQL 同時実行制御の原則に関する知識ポイント

Mysql は、高性能なデータ ストレージ サービスを提供する主流のオープン ソース リレーショナル...

MySQL 8.0.12 winx64 解凍バージョンのインストール グラフィック チュートリアル

mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....

React の 3 つの主要属性における Ref の使用に関する詳細な説明

目次クラスコンポーネント機能コンポーネントインタビューのよくある質問: React における ref...

HTMLのテーブルの内容は中央に水平と垂直に表示されます

CSSスタイルファイルで指定 #class td /*表のテキストを左右上下に揃えるように設定する*...

SQL効率を分析する方法を説明する

Explain コマンドは、データベースのパフォーマンス問題を解決するために最初に推奨されるコマンド...

Vue の NetEase Cloud Music Player インターフェースを模倣したシンプルな実装プロセス

仕事のプロジェクトのニーズにより、曲の再生が必要となり、さまざまな資料を参考にして、NetEase ...

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨てテキストを自動的に切り捨てるスタイル コードを実装するには、次のコー...

IE8 互換性について: X-UA-compatible 属性の説明

問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...

DockerコンテナのIPアドレスを表示する方法

私はずっとDockerにはIPアドレスがないと思っていました。実はDockerのネットワークテンプレ...

JavaScript を使用してソートアルゴリズムを実装する方法

目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...

CentOS8でルートパスワードを素早く変更する方法

Centos8仮想マシンを起動し、上下キーを押して図1のインターフェースの最初の行を選択します。図1...

WeChatアプレットの入力レベルとテキストエリアレベルの浸透率が高すぎる問題の解決策

WeChat ミニプログラムのネイティブ コンポーネントであるカメラ、キャンバス、入力 (フォーカス...

MySQL 5.7.16 のインストールと設定方法のグラフィック チュートリアル (Ubuntu 16.04)

Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...