Vue はシームレスなカルーセル効果を実現

Vue はシームレスなカルーセル効果を実現

この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

コード

1. サブコンポーネントコード

コードは次のとおりです(例):

<テンプレート>
  <div>
    <div class="box" @mouseenter="マウス" @mouseleave="マウスリーブ">
      <ul class="box1">
        <li>
          <画像
            :src="n"
            v-for="(n, i) 画像内"
            :key="i"
            代替案=""
            :style="{ 左: (i - インデックス) * 500 + 'px' }"
            :class="hasAni ? 'アニメーション' : ''"
          />
        </li>
      </ul>
      <p class="tt" @click="left">&lt;</p>
      <p class="tt1" @click="right">></p>
    </div>
  </div>
</テンプレート>

スクリプトコードは次のとおりです(例):

<スクリプト>
エクスポートデフォルト{
  名前:「ルンボ」
  小道具: ["imgs"],
  データ() {
    戻る {
      // js で画像を使用するには、require を使用して index: 1 をインポートする必要があります。
      hasAni: true、
      真: 真、
    };
  },
  メソッド: {
    ねずみ() {
      タイマー間隔をクリアします。
    },
    マウスのLeave() {
      this.timer = setInterval(() => {
        this.index++;
        this.hasAni = true;
        (this.index == this.imgs.length - 1) の場合 {
          タイムアウトを設定する(() => {
            this.index = 0;
            this.hasAni = false;
          }, 750);
        }
      }, 1500);
    },
    右() {
      もしこれが真ならば{
        this.index++;
        this.hasAni = true;
        this.istrue = false;
        (this.index == this.imgs.length - 1) の場合 {
          タイムアウトを設定する(() => {
            this.index = 1;
            this.hasAni = false;
          }, 750);
        }
        タイムアウトを設定する(() => {
          this.istrue = true;
        }, 1000);
      }
    },
    左() {
       もしこれが真ならば{
        this.index--;
        this.hasAni = true;
        this.istrue = false;
        (this.index == 0)の場合{
          タイムアウトを設定する(() => {
            this.index = this.imgs.length - 1;
            this.hasAni = false;
          }, 750);
        }
        タイムアウトを設定する(() => {
          this.istrue = true;
        }, 1000);
      }
    },
  },
  アクティブ化() {
    コンソールログ(1);
    this.timer = setInterval(() => {
      this.index++;
      this.hasAni = true;
      (this.index == this.imgs.length - 1) の場合 {
        タイムアウトを設定する(() => {
          this.index = 0;
          this.hasAni = false;
        }, 750);
      }
    }, 1500);
  },
  非活性化() {
    タイマー間隔をクリアします。
  },
};
</スクリプト>

CS

<スタイルスコープ>
p {
  幅: 30ピクセル;
  高さ: 60px;
  背景色: rgba(46, 139, 86, 0.356);
  行の高さ: 60px;
  フォントサイズ: 24px;
  位置: 絶対;
  上: 105px;
}
.tt {
  左: 0;
}
.tt1 {
  右: 0;
}
。箱 {
  幅: 500ピクセル;
  高さ: 300px;
  マージン: 100px 自動;
  位置: 相対的;
  オーバーフロー: 非表示;
}
.box1 画像 {
  位置: 絶対;
  左: 0px;
  上: 0;
  幅: 500ピクセル;
  高さ: 300px;
}
.アニメーション {
  遷移: 左 0.75 秒;
}
</スタイル>

2. 親コンポーネントコード

親コンポーネント

<キープアライブ>
      <Lunbo :imgs="imgs" />
</キープアライブ>

モジュールのインポート

「./components/Lunbo」からLunboをインポートします。

画像データ

データ() {
    戻る {
      画像:[
        必要("./assets/6.jpg")、
        必要("./assets/1.jpg")、
        必要("./assets/2.jpg")、
        必要("./assets/3.jpg")、
        必要("./assets/4.jpg")、
        必要("./assets/5.jpg")、
        必要("./assets/6.jpg")、
        必要("./assets/1.jpg")、
      ]、
    }

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

以下もご興味があるかもしれません:
  • Vueを使用して画像カルーセルコンポーネントを作成するアイデアの詳細な説明
  • vue.js をベースに画像カルーセル効果を実現する
  • vue.js カルーセル コンポーネント vue-awesome-swiper に基づくカルーセル チャートの実装
  • カルーセル効果を実現するためのVueトランジション
  • Vue でスワイパー カルーセル プラグインを参照するための詳細なチュートリアル
  • Vue.jsは、mint-uiのカルーセルサンプルコードを統合します。
  • Vue.jsはシンプルなカルーセル効果を実装します
  • vue carousel のプラグインである vue-concise-slider の使用
  • Vue を使用してモバイル画像カルーセル コンポーネントを実装する方法の例
  • vue.js+elementUI は、左右の矢印をクリックしてアバターを切り替える機能を実現します(カルーセル画像の効果に似ています)

<<:  Rancher で Kubernetes 用の標準化された VMware イメージを構築する方法

>>:  Mysql5.7.14 Linux版のパスワードを忘れた場合の完璧な解決策

推薦する

MySQL 5.7.23 バージョンのインストールチュートリアルと設定方法

MySQL を自分でインストールするのに 3 時間かかりました。チュートリアルはたくさんあるにもかか...

史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 1) (パート 35)

データのバックアップと復元に関する最初の記事を皆さんに共有します。具体的な内容は次のとおりです。基本...

JavaScript のアンチシェイクとスロットリングの違いと実装

目次1. 手ぶれ補正2. スロットリング3. まとめ序文:フロントエンド開発者には、次の 2 つの要...

スマートCSSを使用して、ユーザーのスクロール位置に基づいてスタイルを適用します。

現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

WeChatミニプログラム公式顔認証の詳しい説明

ミニプログラムはユーザーの個人情報を収集してアップロードしましたが、拒否されました。こんにちは、ミニ...

どのような種類の MYSQL 接続クエリを知っていますか?

序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...

MySql Group Byは複数のフィールドのグループ化を実装します

日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、...

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

実行中のDockerコンテナのポートマッピングを変更する方法

序文docker run がコンテナを作成して実行するときに、-p を使用してポート マッピング ル...

MySQL アクティブ-アクティブ同期レプリケーションの 4 つのソリューションの詳細な説明

目次MySQLネイティブレプリケーションに基づくマスター-マスター同期ソリューションGaleraレプ...

Linux サーバーでの MySQL インストール情報の表示

mysql のインストール情報を表示します。 #ps -ef | grep mysql usr/bi...

JavaScript リフレクション学習のヒント

目次1. はじめに2. インターフェース3. 簡単な例4. 結論1. はじめにMDN の公式 Web...

altとtitleの違いの詳しい説明

これら 2 つの属性はよく使用されますが、その違いはまとめられていません。それでは、その使い方をまと...

中国のウェブサイトユーザーエクスペリエンスランキング

<br />ユーザーエクスペリエンスは中国のウェブサイトでますます重視されており、ユーザ...