element-plus/website/docs/jp/carousel.md
三咲智子 55348b30b6
style: use prettier (#3228)
* style: use prettier

* style: just prettier format, no code changes

* style: eslint fix
object-shorthand, prefer-const

* style: fix no-void

* style: no-console
2021-09-04 19:29:28 +08:00

8.4 KiB

Carousel(カルーセル)

限られたスペースに一連の画像やテキストをループさせる

基本的な使い方

:::demo el-carouselel-carousel-item を組み合わせれば、carousel ができあがります。各スライドの内容は完全にカスタマイズ可能で、el-carousel-itemタグの中に配置するだけです。デフォルトでは、マウスがインジケータの上にカーソルを置くと carousel が切り替わります。triggerclickに設定すると、インジケータがクリックされたときだけ carousel が切り替わります。

<template>
  <div class="block">
    <span class="demonstration"
      >Switch when indicator is hovered (default)</span
    >
    <el-carousel height="150px">
      <el-carousel-item v-for="item in 4" :key="item">
        <h3 class="small">{{ item }}</h3>
      </el-carousel-item>
    </el-carousel>
  </div>
  <div class="block">
    <span class="demonstration">Switch when indicator is clicked</span>
    <el-carousel trigger="click" height="150px">
      <el-carousel-item v-for="item in 4" :key="item">
        <h3 class="small">{{ item }}</h3>
      </el-carousel-item>
    </el-carousel>
  </div>
</template>

<style>
  .el-carousel__item h3 {
    color: #475669;
    font-size: 14px;
    opacity: 0.75;
    line-height: 150px;
    margin: 0;
  }

  .el-carousel__item:nth-child(2n) {
    background-color: #99a9bf;
  }

  .el-carousel__item:nth-child(2n + 1) {
    background-color: #d3dce6;
  }
</style>

:::

インジケータ

インジケータは carousel の外側に表示することができます。

:::demo indicator-position 属性はインジケータの位置を決定します。デフォルトでは carousel の内側にあり、indicator-positionoutside に設定すると外側に移動し、indicator-positionnone に設定するとインジケータは非表示になります。

<template>
  <el-carousel indicator-position="outside">
    <el-carousel-item v-for="item in 4" :key="item">
      <h3>{{ item }}</h3>
    </el-carousel-item>
  </el-carousel>
</template>

<style>
  .el-carousel__item h3 {
    color: #475669;
    font-size: 18px;
    opacity: 0.75;
    line-height: 300px;
    margin: 0;
  }

  .el-carousel__item:nth-child(2n) {
    background-color: #99a9bf;
  }

  .el-carousel__item:nth-child(2n + 1) {
    background-color: #d3dce6;
  }
</style>

:::

矢印

矢印が表示されるタイミングを定義することができます。

:::demo arrow 属性は、いつ矢印が表示されるかを決定します。デフォルトでは、マウスが carousel の上にカーソルを置いたときに表示されます。arrowalways または never に設定すると、矢印を恒久的に表示/非表示にすることができます。

<template>
  <el-carousel :interval="5000" arrow="always">
    <el-carousel-item v-for="item in 4" :key="item">
      <h3>{{ item }}</h3>
    </el-carousel-item>
  </el-carousel>
</template>

<style>
  .el-carousel__item h3 {
    color: #475669;
    font-size: 18px;
    opacity: 0.75;
    line-height: 300px;
    margin: 0;
  }

  .el-carousel__item:nth-child(2n) {
    background-color: #99a9bf;
  }

  .el-carousel__item:nth-child(2n + 1) {
    background-color: #d3dce6;
  }
</style>

:::

カードモード

ページが十分に広くても高さが限られている場合、carousel のカードモードを有効にすることができます。

:::demo typecard にするとカードモードになります。見た目とは別に、カードモードと共通モードの最大の違いは、両側のスライドをクリックすると carousel が直接カードモードに切り替わることです。

<template>
  <el-carousel :interval="4000" type="card" height="200px">
    <el-carousel-item v-for="item in 6" :key="item">
      <h3 class="medium">{{ item }}</h3>
    </el-carousel-item>
  </el-carousel>
</template>

<style>
  .el-carousel__item h3 {
    color: #475669;
    font-size: 14px;
    opacity: 0.75;
    line-height: 200px;
    margin: 0;
  }

  .el-carousel__item:nth-child(2n) {
    background-color: #99a9bf;
  }

  .el-carousel__item:nth-child(2n + 1) {
    background-color: #d3dce6;
  }
</style>

:::

デフォルトでは directionhorizontal である。directionvertical に設定することで、carousel を垂直方向に表示させることができる。

:::demo

<template>
  <el-carousel height="200px" direction="vertical" :autoplay="false">
    <el-carousel-item v-for="item in 4" :key="item">
      <h3 class="medium">{{ item }}</h3>
    </el-carousel-item>
  </el-carousel>
</template>

<style>
  .el-carousel__item h3 {
    color: #475669;
    font-size: 14px;
    opacity: 0.75;
    line-height: 200px;
    margin: 0;
  }

  .el-carousel__item:nth-child(2n) {
    background-color: #99a9bf;
  }

  .el-carousel__item:nth-child(2n + 1) {
    background-color: #d3dce6;
  }
</style>

:::

Attribute Description Type Accepted Values Default
height carousel の高さ string
initial-index アクティブになったスライドのインデックス(0 始まり) number 0
trigger インディケータの発動方法 string hover/click hover
autoplay スライドを自動的にループさせるかどうか boolean true
interval 自動ループの間隔 (ミリ秒単位) number 3000
indicator-position インディケータの位置 string outside/none
arrow 矢印が表示されている場合 string always/hover/never hover
type carousel のタイプ string card
loop ループ表示 boolean - true
direction 表示方向 string horizontal/vertical horizontal
pause-on-hover pause autoplay when hover boolean - true
Event Name Description Parameters
change アクティブなスライドが切り替わったときにトリガされます。 index of the new active slide, index of the old active slide
Method Description Parameters
setActiveItem 手動でスライドを切り替える index of the slide to be switched to, starting from 0; or the name of corresponding el-carousel-item
prev 前のスライドに切り替える
next 次のスライドに移る
Attribute Description Type Accepted Values Default
name アイテムの名前は setActiveItem で使われています。 string
label 対応するインジケータのテキスト内容 string