JSベースの手持ち連射機能+テキスト揺れ特殊効果コードの簡単実装

JSベースの手持ち連射機能+テキスト揺れ特殊効果コードの簡単実装

少し前にTikTokで揺れる連打が流行っていたので真似してみることにしました。さっそく効果をみてみますと…

エフェクト表示

ここに画像の説明を挿入

GIF 画像は少しぼやけて見えますが、実際の効果は良好です。

一見、何をすればいいか分からないので、まずは実装する機能を分解してみましょう。

  1. フルスクリーンの黒い背景を生成し、テキストを書き込み、コンテンツを中央に配置する
  2. シームレスなスクロールを実現
  3. テキストの揺れ効果を実現する
  4. 90度回転(デフォルトでは水平表示)

コードは次のとおりです

.html

 <div class="弾幕ボックス">
  <div class="text">揺れる字幕</div>
 </div>

.css

.弾幕ボックス{
  幅: 100vh;
  高さ:100vw;
  変換元: 50vw 50vw;
  変換: 回転(90度);
  空白: ラップなし;
  ディスプレイ: フレックス;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  背景色: #000;
  オーバーフロー: 非表示;
  アニメーション: aniShake 0.5 秒線形無限;
 }

 。文章 {
  幅: 100%;
  フォントサイズ: 50px;
  色: #FFF;
  アニメーション: aniMove 5秒線形無限;
  アニメーション塗りつぶしモード: forwards;
 }

 /* テキストのスクロール */
 @keyframes aniMove {
  0% { 変換: translateX(100%); }
  100% { 変換: translateX(-100%); }
 }
 
 /* 揺れる字幕効果*/
 @keyframes アニシェイク {
  0%、33% { テキストシャドウ: 3px -3px 0px #FE008E、-5px 5px 0px #00FFFF; }
  34%、66% { テキストシャドウ: 5px -5px 0px #FE008E、-3px 3px 0px #00FFFF; }
  67%、100% { テキストシャドウ: 3px -3px 0px #00FFFF、-5px 5px 0px #FE008E; }
 }

この時点で、揺れやスクロール効果のある手持ち弾幕機能が実現しました。

機能は複雑ではありません。最初はキャンバスで描画することを考えましたが、ミニプログラムではキャンバスなどのネイティブコンポーネントが比較的高いレベルにあります。特殊効果を切り替えたり、ポップアップウィンドウを書いて設定を変更したりしたい場合は、簡単ではありません。そこで私は CSS3 で調べて書いてみました。ただ言いたいのは、「CSS3 は素晴らしい!!!」ということです。

ミニプログラムでの設定効果のプレビューがさらに充実

最近、小さなプログラムを作成し、手持ち連射機能を追加し、より多くの機能を実現しました。また、設定したコンテンツを友人と共有することもできます。コードをスキャンして体験し、サポートしてください...

ここに画像の説明を挿入

要約: 初めてブログを書きました。午後中ずっと削除とカットに費やしました。記事を書くのはあまり得意ではありませんが、それでも完成しました。結局、人は自分で成長することを学ばなければなりません...

JS ベースの手持ち連射機能 + テキスト揺れ特殊効果コードを簡単に実装する方法についての記事はこれで終わりです。より関連性の高い js 手持ち連射テキスト揺れコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JS で実装したビデオ弾幕スクリーン効果の例
  • JavaScript ベースで弾幕特殊効果を実現
  • JavaScript の弾丸スクリーン効果のシンプルな実装
  • JavaScript ライブコメント連発カット画像機能ポイント収集効果コード

<<:  Dockerのヘルス検出メカニズム

>>:  Nginx で Brotli 圧縮アルゴリズムを有効にする方法の例

推薦する

element-ui 写真をアップロードした後、座標点をマークします

要素UIとはelement-ui は、Ele.me のフロントエンド チームが開発者、デザイナー、製...

docker-maven-pluginプラグインは対応するjarパッケージを取得できません

docker-maven-plugin プラグインを使用する場合、Maven は対応する jar パ...

単一/複数行テキストを含む div を垂直方向に中央揃えする N 通りの方法 (高さ不明/高さ固定)

この問題について話すとき、垂直方向の中央揃えを設定するための vertical-align 属性が ...

nginx + fastcgi を使用して画像認識サーバーを実装する

背景ディープラーニング モデルの推論には、特定のデバイスが使用されます。マシンは、モデルの読み込み、...

Tomcatが親の委任メカニズムを破壊する方法についての簡単な説明

目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...

WeChat アプレット開発フォーム検証 WxValidate の使用

個人的には、WeChat アプレットの開発フレームワークは VUE と概ね似ていると感じていますが、...

Reactコンポーネントのライフサイクルの詳細な説明

目次1.ライフサイクルとは何か2. 読み込みプロセス1.コンストラクタ2. レンダリング3. コンポ...

CSS3 での 2D および 3D 変換の実装

CSS3 は、要素の 2D 平面変換と視覚的な 3D 空間変換を実装します。2D 変換はより頻繁に使...

MySQL 5.7 zip アーカイブ バージョンのインストール チュートリアル

この記事では、MySQL 5.7 zipアーカイブ版のインストールチュートリアルを参考までに紹介しま...

Linux で open-vswitch をインストールおよびアンインストールする方法

1. ソースコードからovsをコンパイルしてインストールします。依存関係をインストールします: # ...

ミニプログラムの基本的な使用方法の知識ポイント(非常に包括的で、お勧めです!)

目次アプリを登録するときに何をすればよいですか?ページを登録するときに通常何をする必要がありますか?...

ubuntu18.04 での qt5.12.8 のインストールと環境設定に関する詳細なチュートリアル

環境システム: Ubuntu 18.04ソフトウェア: qt5.12.8 1. インストールパッケー...

WeChat アプレットのカスタム タブバー コンポーネント

この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...

Vue 名前付きスロットの基本的な使用例

序文名前付きスロットは、スロット内の「name」属性を使用して要素にバインドされます。知らせ: 1....

HTMLリンクタグのrel属性

<link> タグは、現在のドキュメントと Web コレクション内の他のドキュメントとの...