スワイパープラグインを使用して Vue でカルーセルを実装する例

スワイパープラグインを使用して Vue でカルーセルを実装する例

みなさんこんにちは。私は現在、Ele.me を模倣したプロジェクトに取り組んでいます。ここで私のプロジェクト体験を同期して、皆さんと共有したいと思います。

vue - スワイパープラグインを使用してカルーセルを実装する

ダウンロードしてインストール: npm install swiper --save

Msite.vue の HTML 部分:

<!-- ページの msite_nav ナビゲーション セクションで swiper を使用します -->
<div class="スワイパーコンテナ">
	<div class="スワイパーラッパー">
        <div class="swiper-slide">1</div>
        <div class="swiper-slide">2</div>
        <div class="swiper-slide">3</div>
    </div>
    <!-- スワイパー カルーセル ドット -->
    <div class="swiper-pagination"></div>
</div>

スクリプト部分が導入され、初期化されます。

<スクリプト>
'swiper' から Swiper をインポートします
//同時に、swiperのcssファイルをインポートします import 'swiper/dist/css/swiper.min.css'
エクスポートデフォルト{
  //スワイパーはページがロード(マウント)された後に初期化する必要があることに注意してください。mounted(){
    //カルーセルを実装するためのスワイパーインスタンスを作成する new Swiper('.swiper-container', {
      自動再生: 有効、
      // ページネーションが必要な場合: {
        el: '.swiper-pagination',
        クリック可能: true
      }
   })
  }
}
</スクリプト>

CSSファイルをインポートする場合、バージョンが異なるためインポート方法が異なることに注意してください。そうでない場合は、対応するCSSファイルが見つからないためエラーが報告されます。たとえば、最新バージョン

'swiper/swiper-bundle.min.css' をインポートします

具体的な使い方については[Swiper公式ドキュメント]を参照してください。

注意すべき点は、データをリクエストした後にスワイパーインスタンスを作成する必要があることです。

カルーセルのバグを解決するには、watch と $nextTick を使用します。

ページング スワイパーは、実際にはカルーセル リストが表示された後に初期化される必要があります (つまり、カテゴリ配列にデータがある)。

最初は、categories は空の配列です。カルーセル リストはデータがある場合にのみ表示されます。カテゴリのデータの変更を監視するには、watch を使用します。

//カテゴリを監視するための新しいウォッチを作成する
時計:
    カテゴリ (値) { // カテゴリ配列にデータがあります // ただし、インターフェースはまだ非同期に更新されていません}
}
// マウントされた新しいSwiper...コードを削除します

しかし実際には、状態内の状態データの変更(データを受信するカテゴリ)と、インターフェイスの非同期更新(カルーセル リストの表示)は 2 つのステップです。したがって、Swiper を初期化する前に、インターフェースが非同期更新を完了するまでしばらく待つ必要があります。

// setTimeout を使用すると効果は得られますが、タイミングは正確ではありません setTimeout(() => {
	// カルーセルを実装するためのSwiperインスタンスオブジェクトを作成します。new Swiper('.swiper-container', {
          自動再生: 有効、
          // ページネーションが必要な場合: {
            el: '.swiper-pagination',
            クリック可能: true
          }
	})
}, 100)

vm.$nextTick( [callback] ) を使用して、インターフェースが非同期更新を完了するのを待った直後に Swiper オブジェクトを作成します。

// データの変更後すぐに使用し、DOM が更新されるまで待機します。
this.$nextTick(() => {
	// インターフェースの更新が完了したら、すぐにコールバックを実行します。new Swiper('.swiper-container', {
    	自動再生: 有効、
    	ページネーション:
    	el: '.swiper-pagination',
    	クリック可能: true
    }
})

上記は、Vue が swiper プラグインを使用してカルーセルを実装する方法の例の詳細です。Vue が swiper プラグインを使用してカルーセルを実装する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue プロジェクトでのスワイパー ループ カルーセルの失敗の解決策
  • VueはSwiperをカプセル化して画像カルーセル効果を実現します
  • Vue2.0はスワイパーコンポーネントを使用してカルーセル効果を実現します
  • Vue でスワイパー フレームワーク カルーセルの小さなドットのスタイルを変更しても機能しない

<<:  Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

>>:  MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

推薦する

nodejsとyarnをインストールし、Taobaoソースプロセスレコードを構成する

目次1. nodejsをダウンロードする2. ダブルクリックしてインストール3. グローバル npm...

スライドによるページめくり効果とクリックイベント問題をモバイル端末上で実装する

前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...

Vue: メモリリークの詳細な説明

メモリリークとは何ですか?メモリ リークとは、新しいメモリが作成されたが、解放またはガベージ コレ...

DockerはGitを使用してJenkinsのリリースとテストプロジェクトの詳細なプロセスを実装します

目次1. Dockerをインストールする2. カスタムネットワークアドレスを作成する3. Docke...

Mysql の遅いクエリ操作の概要

MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...

美しい FLASH ウェブサイト デザイン例 50 選

Flashにより、デザイナーや開発者はブラウザ上でリッチなコンテンツを提供し、動き、インタラクティブ...

モバイルウェブ画面適応(rem)

序文最近、フロントエンドの学習に関する以前のメモを整理したところ、モバイル Web 画面の適応 (r...

MySQL接続がハングする理由の詳細な説明

目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...

MySQL データベース内の varchar 型の数値のサイズを比較する方法

テストテーブルを作成する -- ---------------------------- -- ch...

MySQLテクノロジーにおけるInnoDBロックの詳細な説明

目次序文1. ロックとは何ですか? 2. InnoDBストレージエンジンのロック2.1 ロックの種類...

SQL 実践演習: オンライン モール データベース ユーザー情報データ操作

オンラインショッピングモールデータベース - ユーザー情報データ運用プロジェクトの説明電子商取引の台...

CSS3で実装された3Dトンネル効果

達成された効果実装コードhtml <div class="scene"&g...

CSS3でハートを描く

成果を達成する要件/機能: CSS + HTML を使用してハートを描く方法。分析:正方形と 2 つ...

MySQL 最適化技術における Limit クエリの最適化分析

序文実際のビジネスでは、ページングは​​一般的なビジネス要件です。次に、制限クエリを使用します。制限...

JavaScriptエラーキャプチャの詳細な説明

目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...