タイプライター効果を実現する純粋な js

タイプライター効果を実現する純粋な js

この記事の例では、タイプライター効果を実現するためのjsの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

レンダリング

アプリケーションシナリオ

あまり役に立ちません。ネットで似たようなエフェクトを見て、40行か50行くらい理解できないコードを書いたので、簡単に実装できないか試してみました。

html

<h2 id="テキストボックス"></h2>
<!-- 1 行もコードです -->
CS

        h2 {
   幅: 800ピクセル;
   行の高さ: 40px;
   下境界線: 1px 実線;
   マージン: 200px 自動;
   フォントサイズ: 24px;
  }
  
  .アニメーション {
   表示: インラインブロック;
   パディング: 0 5px;
   垂直方向の配置: 3px;
   フォントサイズ: 20px;
   フォントの太さ: 標準;
  }
  
  .animate.on {
   アニメーション: 1.5 秒の無限前方フェード。
  }
  
  @keyframes フェード {
   から {
    不透明度: 0;
   }
   に {
    不透明度: 1;
   }
  }

js

textBox を $('#text-box') とします。
インデックスを 0 にします。
let str = '私のウェブサイトへようこそ!';
 
  len = str.length;とします。
 
  関数入力() {
 
   textBox.html(str.substr(0, index) + '<span class="animate">|</span>');
 
   setTimeout(関数() {
    インデックス++;
 
    if(インデックス === 長さ + 1) {
     $('.animate').addClass('on');
     戻る;
    }
 
    入力();
 
   }, Math.random() * 600)
 
   コンソールログ(インデックス);
  }
 
  入力();

実施原則

タイマーは文字列インターセプションと組み合わせてタイプライターのようなフラストレーション感を実現し、インデックスは再帰を通じて蓄積されます。これは、最初の 1 秒で 1 バイトをインターセプトし、次の 1 秒で 2 バイトをインターセプトする、という操作と同じです。タイマーは乱数を取得して、入力時の一時停止感覚をより適切にシミュレートします。再帰呼び出しに終了ループ条件を追加し、終了前にアニメーションを開始してカーソルのジャンプをシミュレートします。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JS で実装されたタイプライター効果の完全な例
  • JavaScript ゲーム開発:「三国志演義 曹操伝」コンポーネント開発(第 3 回)シナリオ ダイアログでのタイプライター風テキスト出力
  • JavaScript テキストエリア タイプライター効果 プロンプトコード 推奨
  • js タイプライター効果コード

<<:  MySQLクエリキャッシュの簡単な使い方の詳細な説明

>>:  Docker Secretの管理と使用の詳細な説明

推薦する

vite2.0 設定学習の詳しい説明(typescript 版)

導入悠宇希の原文です。 vite は Vue CLI に似ています。vite も、基本的なプロジェク...

docker を使用して influxdb と mongo をデプロイするための一般的なコマンド

Docker ベースのデータベースをデプロイするsudo docker pull influxdb ...

HTML ページジャンプとパラメータ転送の問題

HTMLページジャンプ: window.open(url, "", "...

MySQL監視ツールmysql-monitorの詳細な説明

1. 概要mysql-monitor MYSQL 監視ツール、最適化ツール、1 つの Java Sp...

MySQL GROUP_CONCAT 制限の解決

効果: GROUP_CONCAT関数は、フィールド値を文字列に連結することができます。デフォルトの区...

ccs3に基づくタイムライン実装方法

Web プロジェクトでは、タイムライン コントロールをよく使用します。この記事では、項目ごとに展開で...

MySql インポート CSV ファイルまたはタブ区切りファイル

別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...

vue+tp5はシンプルなログイン機能を実現

この記事では、参考までに、簡単なログイン機能を実装するためのvue+tp5の具体的なコードを紹介しま...

nginxとIISで使用できるSSL証明書を作成する

目次SSL証明書の作成1. 秘密鍵を生成する2. 証明書要求ファイルを生成する3. CRT証明書ファ...

TypeScriptのインデックスシグネチャの理解に関する簡単な説明

目次1. インデックス署名とは何ですか? 2. インデックス署名構文3. インデックス署名に関する注...

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...

MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル

くさびコンピュータにインストールされている MySQL のバージョンが比較的古く、おそらくバージョン...

よくある MySQL 設計エラーをご存知ですか?

インターネットの発達により、バスを待ったり地下鉄に乗ったりする時間など、断片的な時間を活用して、いつ...

Nginx で https をアップグレードする方法

購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...

Tomcat の 404 エラーの解決方法の詳細な説明

Tomcat テストで 404 問題が発生します。問題は次のとおりです。 HTTP ステータス 40...