テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキストカルーセル付きの看板がよく見られます。この記事では、その実装ロジックを詳しく紹介します。 シナリオ店舗のドアの看板には、水平に動くテキストでアナウンスを表示する必要があります (わかりやすいように境界線が追加されます)。 論理的な説明無限のテキスト回転を実現するための主なロジックは 2 つあります。
最初の実装方法は、CSS アニメーション transform: translateX(-50%) を使用することです。これは、それ自体の半分を左に移動することを意味します。 ポイント2の実装方法はポイント1と関連しています。デフォルトでは、CSS アニメーションは再生が完了した後に変化します。つまり、再生が完了すると位置が初期位置に変化します (変化は瞬時に完了し、肉眼では認識できません)。そのため、変化を使用してテキストの先頭と末尾を接続できます。 同一のテキストを 2 つ使用します。最初のテキストの再生が終了し、2 番目のテキストの再生が開始されると、アニメーションが突然変化し、最初のテキストの再生が再開されます。2 つのテキストの内容は同じであるため、ユーザーはそれに気づきません。 考えるこの実装は現在一般的ですか? この方法は実際にほとんどのニーズを解決しましたが、テキストが少ない場合やテキストの幅がウィンドウの幅よりも小さい場合は問題が発生します。私が描いた回転ロジック図は、その一例にすぎません。 テキストの幅がウィンドウの幅よりも小さい場合、これを実現するにはどうすればよいですか? 実際、原理は同じです。テキスト回転の中心的な機能の 1 つは、2 つの同一のテキストを持つことです。ただし、前提条件として、テキストの幅がウィンドウの幅よりも大きくなければなりません。 この前提条件をどのように達成するのでしょうか? 答えは、テキストの幅がウィンドウの幅よりも大きくなるまでテキスト全体をコピーし、それを 2 つの同一のテキストに処理することです。 要約する無限テキスト回転のポイントは次のとおりです。
コード: <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8" /> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0" /> <title>テキスト無限カルーセル</title> <スタイル> 体 { ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 高さ:100vh; } #包む { オーバーフロー: 非表示; 位置: 相対的; 幅: 200ピクセル; 高さ: 20px; 空白: ラップなし; } #内部 { 位置: 絶対; アニメーション: スライド 5 秒 線形無限; } #初め{ 表示: インラインブロック; 境界線: 1px 実線の赤; } #2番{ 表示: インラインブロック; 境界線: 1px 緑; } @keyframes スライド { 0% { 変換: translateX(0); } 100% { 変換: translateX(-50%); } } </スタイル> </head> <本文> <div id="wrap"> <div id="内部"> <span id="first">当店では主にラーメン、麺類、煮込み麺、丼ものを販売しております</span> <span id="second">当店では主にラーメン、麺類、煮込み麺、丼ものを販売しております</span> </div> </div> </本文> </html> これで、ネイティブ CSS で無限テキスト カルーセルを実装する一般的な方法についての記事は終了です。CSS で無限テキスト カルーセルを実装する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: Ubuntu は、Mysql+Keepalived の高可用性実装 (デュアルアクティブ ホットスタンバイ) を構築します。
>>: Webフロントエンド開発におけるエラーを見つけるための基本的な考え方
置換を削除したり文字列を削除したりできる tr コマンドは、誰もがよく知っています。 英語では、英語...
前提条件1. ローカルコンピュータとサーバーにDockerがインストールされています。ダウンロード方...
CSS ウェブページレイアウトを行う場合、XHTML1.0 仕様に準拠する必要があることは誰もが知っ...
参考までに、vueとbootstrapを使って比較的シンプルな生徒管理システムを作りました。具体的な...
問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...
1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...
まず、効果図の下にコードを添付します <!DOCTYPE html> <html&...
MySQL へのリモート接続が失敗する場合は、次の理由が考えられます。 1. 若い男性/女性の方は、...
Linux 初心者から Linux マスターへの成長の道: Linux システム ディレクトリ s...
コンテナのライフサイクルコンテナランタイムのライフサイクルコンテナは、分離特性を持つプロセスのセット...
Macノードの削除と再インストール消去 ノード -v sudo npm アンインストール npm -...
SeLinuxを無効にするsetenforce 0永久に閉店: vi /etc/selinux/c...
1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...
次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...
【背景】最近勉強中に非常に恥ずかしいことに遭遇しました。MySQL のパスワードを忘れてしまい、My...