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版のパスワードを忘れた場合の完璧な解決策

推薦する

CenOS6.7 mysql 8.0.22 のインストールと設定方法のグラフィックチュートリアル

CenOS6.7 は MySQL8.0.22 (推奨コレクション) をインストールします1. MyS...

テーブルレイアウトの長所と短所、そして推奨されない理由

テーブルの欠点1. テーブルは他の HTML タグよりも多くのバイトを占有します。 (ダウンロード時...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...

jQueryは記事の折りたたみと展開の機能を実装します

この記事の例では、記事の折りたたみと展開の機能を実現するためのjQueryの具体的なコードを参考まで...

CSS が最初のサイクルで画像を読み込むために @keyframes を使用するときに発生するホワイトギャップの問題 (フラッシュ画面) をすばやく解決します。

問題の説明: CSS アニメーション プロパティを使用すると、ループが最初に読み込まれたときに白いギ...

axiosのシンプルなカプセル化と使用例コード

序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...

Vue.js と MJML でレスポンシブなメールを作成する

MJML は、開発者が美しく、応答性に優れ、あらゆるデバイスやメール クライアントで動作する魅力的な...

Vueカウンターの実装

目次1. カウンターの実装2. 成果を達成する1. カウンターの実装ページにカウンターを実装するだけ...

ウェブサイトをIE6、7、8、9の古いバージョンに対応させるための3つのソリューション

Microsoft は後からブラウザの研究開発に力を入れてきましたが、実際のところ、最新の IE ブ...

react+reduxを使用してカウンター機能を実装すると発生する問題

Redux はシンプルな状態マネージャーです。その歴史をたどることはしません。使用法の観点から見ると...

Linux ユーザー スクリプトの作成/推測ゲーム/ネットワーク カード トラフィック監視の紹介

目次1. ユーザーが作成したスクリプト2. 単語当てゲーム3. ネットワークカードのトラフィック監視...

BootStrap グリッド間に隙間を残す解決策

目次[例を見る]: 【本来の効果は以下の通り】理由は次のとおりです。 【解決】:要約するBootSt...

MySQL テーブル全体の暗号化ソリューション keyring_file の詳細な説明

例示するMySql Community Edition は、5.7.11 以降、テーブルベースのデー...

Docker で既存のイメージに基づいて新しいイメージを構築する方法

既存のイメージから新しいイメージを構築することは、Dockerfile ドキュメントを通じて行われま...