Vue を使用して「カルーセル マップ」コンポーネントを実装する

このブログでは、Vue を使用して単純なカルーセル コンポーネントを実装します。これを達成するために、ライフサイクル フック、データ バインディング、計算されたプロパティなどの Vue の機能を利用します。

準備

まず、カルーセルを表示するための Vue コンポーネントを作成する必要があります。この例では、 というコンポーネントを作成しますCarousel

レンプレート

まずコンポーネントのテンプレート、つまり HTML 構造を定義しましょう。ulカルーセルの画像を含む要素と、現在表示されている画像を示すインジケーターを使用します。

<template>
  <div class="carousel">
    <ul class="slides">
      <li v-for="(slide, index) in slides" :key="index" :class="{ active: currentIndex === index }">
        <img :src="slide.image" alt="Slide Image">
      </li>
    </ul>
    <div class="indicators">
      <span
        v-for="(slide, index) in slides"
        :key="index"
        :class="{ active: currentIndex === index }"
        @click="goToSlide(index)"
      ></span>
    </div>
  </div>
</template>

上記のコードでは、Vue の命令を使用してv-forカルーセルの各画像をループでレンダリングします。また、現在のインデックスに従ってcurrentIndex各カルーセル項目のクラスを設定しactive、クリック イベントに従って対応するカルーセルに切り替えます。

データと計算されたプロパティ

data次に、コンポーネント内のカルーセルのデータと現在のインデックスを定義する必要があります。各カルーセル項目に関する情報を格納するために配列を使用しslides、現在表示されているカルーセル インデックスを表す整数を使用しますcurrentIndex

<script>
export default {
  data() {
    return {
      slides: [
        { image: 'slide1.jpg' },
        { image: 'slide2.jpg' },
        { image: 'slide3.jpg' }
      ],
      currentIndex: 0
    };
  },
  // ...
};
</script>

ライフサイクルフック

コンポーネントがマウントされた後、カルーセルを開始する必要があります。このために、 Vue が提供するmountedライフサイクル フックを使用できます。

<script>
export default {
  // ...
  mounted() {
    this.startCarousel();
  },
  // ...
};
</script>

mountedフックでは、startCarousel自動回転機能を開始するメソッドを呼び出します。

方法

次に、カルーセル間を切​​り替えるためのメソッドをいくつか定義する必要があります。

<script>
export default {
  // ...
  methods: {
    startCarousel() {
      setInterval(this.nextSlide, 3000);
    },
    nextSlide() {
      this.currentIndex = (this.currentIndex + 1) % this.slides.length;
    },
    goToSlide(index) {
      this.currentIndex = index;
    }
  }
};
</script>

上記のコードでは、setInterval関数を使用してnextSlideメソッドを定期的に呼び出し、自動切り替えを実現しています。

カルーセルマップ。nextSlideこのメソッドは現在のインデックスをインクリメントし、剰余演算子を使用してインデックスがカルーセル配列の範囲内でループするようにします。goToSlide指定されたカルーセルに切り替えるメソッドを使用します。

スタイル

最後に、コンポーネントがカルーセルとしてレンダリングされるように、コンポーネントにいくつかのスタイルを追加する必要があります。

<style scoped>
.carousel {
  position: relative;
  width: 100%;
  height: 300px;
}

.slides {
  list-style: none;
  position: relative;
  width: 100%;
  height: 100%;
}

.slides li {
  position: absolute;
  /* 设置轮播图项的样式 */
}

.indicators {
  /* 设置指示器的样式 */
}
</style>

上記のコードでは、.carouselコンポーネント コンテナの幅と高さを設定し、絶対配置を使用してカルーセル項目をレイアウトします。ニーズに応じてカルーセル項目とインジケーターのスタイルをカスタマイズできます。

コードを実行する

これで、カルーセル コンポーネントの実装が完了しました。<carousel></carousel>タグを使用して、このコンポーネントをVue アプリケーションに含めることができます。

<template>
  <div>
    <!-- 其他内容 -->
    <carousel></carousel>
    <!-- 其他内容 -->
  </div>
</template>

<script>
import Carousel from './Carousel.vue';

export default {
  components: {
    Carousel
  },
  // ...
};
</script>

コードを実行すると、指定された時間間隔に従ってカルーセルが自動的に切り替わることがわかります。また、インジケータをクリックして対応するカルーセルに切り替えることもできます。

要約する

Vue の機能を利用するとカルーセルコンポーネントを簡単に実装できます。ライフサイクル フック、データ バインディング、計算されたプロパティなどの機能を利用して、カルーセルの切り替えとレンダリングをシンプルかつ柔軟にします。

このブログが Vue のカルーセル コンポーネントの実装を理解するのに役立つことを願っています。何か問題やご質問がございましたら、お気軽にお問い合わせください。

おすすめ

転載: blog.csdn.net/chy555chy/article/details/130937989