Vueはマーキースタイルのテキストの水平スクロールを実装します

Vueはマーキースタイルのテキストの水平スクロールを実装します

この記事では、マーキースタイルのテキストの水平スクロールを実現するためのVueの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

必要:

Vueプロジェクトの先頭で、テキストを左右にスクロールさせる

ステップ:

1. コンポーネントを自分でカプセル化したり、自分で書いたり、次のコードをコピーしたりすることができます。
2. カプセル化が完了したら、必要なコンポーネントに導入、登録、使用する必要があります。

コード:

マーキー効果を実現するために特別に使用されるマーキーコンポーネントをカプセル化する

<テンプレート>
<!-- マーキー コンポーネント -->
  <div class="marquee-wrap" ref="marquee-wrap">
    <div class="scroll" ref="scroll">
      <p class="marquee">{{text}}</p>
      <p class="コピー" ref="コピー"></p>
    </div>
    <p class="getWidth" ref="getWidth">{{text}}</p>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  名前: 'マーキー'、
  プロパティ: ['val'],
  データ () {
    戻る {
      タイマー: null、
      文章: ''
    }
  },
  作成された(){
    タイマーをsetTimeout(() => {
      this.move()
      タイムアウトをクリア(タイマー)
    }, 1000)
  },
  マウントされた(){
    for (let 項目の this.val) {
    this.text += アイテム
    }
  },
  メソッド: {
    動く () {
    maxWidth = this.$refs['marquee-wrap'].clientWidth とします。
    width = this.$refs['getWidth'].scrollWidthとします。
      if (幅 <= 最大幅) 戻り値
    scroll = this.$refs['scroll']とします。
    copy = this.$refs['copy'] とします。
      copy.innerText = this.text
      距離を0とする 
      this.timer = setInterval(() => {
        距離 -= 1
        if (-距離 >= 幅) {
          距離 = 16
        }
        scroll.style.transform = 'translateX(' + distance + 'px)'
      }, 20)
    }
  },
  破棄前() {
    クリア間隔(this.timer)
  }
}
</スクリプト>

<スタイルスコープ>
  .marquee-wrap {
    幅: 100%;
    オーバーフロー: 非表示;
    位置: 相対的;
  }
  .マーキー{
    右マージン: 0.16rem;
  }
  p {
    単語区切り:すべて保持;
    空白: ラップなし;
    フォントサイズ: 0.28rem;
  }
  .スクロール{
    ディスプレイ: フレックス;
  }
  .getWidth{
    単語区切り:すべて保持;
    空白:折り返しなし;
    位置: 絶対;
    不透明度: 0;
    上: 0;
  }
</スタイル>

どのコンポーネントが使用されているか、インポート

// マーキー コンポーネントをインポートします。import marquee from "@/components/marquee/marquee.vue";

引用と登録

エクスポートデフォルト{
  コンポーネント:
  // マーキーコンポーネントを登録します。
  },
 }

登録が完了したら、次のステップはHTMLスタイルです。テンプレートテンプレートでこのコンポーネントを使用します

<マーキークラス="realData">
          <ul class="fa-scroll-cont">
            <li v-for="realData 内のアイテム" :key="item.name">
              <span class="roll-text">{{ item.city }}</span>
            </li>
          </ul>
</マーキー>

次に効果図を示します。

効果をより明確にするために、さらに数枚写真を撮りました。

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

以下もご興味があるかもしれません:
  • Vue ベースのテキスト マーキー コンポーネント (npm コンポーネント パッケージ)
  • Vueはシンプルなマーキー効果を実装します
  • Vue はシームレスなカルーセル効果 (マーキー) を実現します
  • Vueはマーキー効果を実装します
  • Vueはランニングライトのシンプルな効果を実現
  • タイマーを使用してマーキー効果を実現する Vue サンプルコード
  • Vueはシンプルなマーキーを実装する
  • マーキー効果を実現するためのJsとVUE
  • Vueはシンプルなマーキー効果を実装します
  • Vueマーキーコンポーネントの使い方の詳細な説明

<<:  Spring Boot のパッケージ化と Docker リポジトリへのアップロードの詳細な手順

>>:  CSS スタイルを変更してグレーの Web ページ (色なし、明るい白黒のみ) を実現するいくつかの方法

推薦する

Vueの最初のプログラムを書くための勉強ノート

目次1. HTMLを書く、最初のVueプログラムビューテンプレートとデータに注意してください決定ルー...

INS と DEL を使用してドキュメントの変更をマークする方法の詳細な説明

ins と del は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、...

MySQL データ型の完全分析

データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。デー...

MYSQL フルバックアップ、マスタースレーブレプリケーション、カスケードレプリケーション、および半同期の概要

MySQL フルバックアップ1. バイナリログを有効にし、データベースから分離して別々に保存する v...

vueはel-tableの列幅の適応を完璧に実現します

目次背景技術的ソリューション具体的な実装要約する背景Element UI は、PC で人気の Vue...

MySQL は information_schema オブジェクトの付与をバイパスし、ERROR 1044 (4200) エラーを報告します

この質問は、MySQL の権限に関する WeChat グループのネットユーザー間の議論です。次のよう...

ミニマルなウェブサイトデザインの例

Web アプリケーション クラス1. みんなのためにダウンまたは私だけのためにこのウェブサイトは、ウ...

mysql charset=utf8 本当に意味が分かりますか

1. まずテーブル作成ステートメントを見てみましょう テーブル学生を作成( sid int 主キー ...

MySQL テーブルを返すとインデックスが無効になるケースの説明

導入MySQL InnoDB エンジンがレコードをクエリし、インデックス カバレッジを使用できない場...

MySQL スロークエリ pt-query-digest スロークエリログの分析

1. はじめにpt-query-digest は、MySQL のスロー クエリを分析するためのツール...

Linux システムに 3 つ以上の Tomcat をインストールする (詳細な手順)

複数のTomcatをインストールする場合は、システムにJDKがインストールされている必要があり、 T...

JavaScriptでページスクロールアニメーションを実装する

目次レイアウトを作成するCSSスタイルを追加するJavaScript で要素を操作する対象要素を取得...

MySQL 重複インデックスと冗長インデックスの例の分析

この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...

Linux C++ マルチスレッド同期の非常に詳細な説明

目次1. ミューテックス1. ミューテックスの初期化2. ミューテックスロックの関連特性と分類3. ...

JS ループで async と await を正しく使用する方法

目次概要(ループモード - 共通)配列と非同期メソッドを宣言して反復するforループで使用するマップ...