点击复制
<template>
  <div class="page">
    <div class="demoName">
      <a class="icon" @click="$router.push({ path: '/' })"></a>
      <div class="comp-title">Carousel</div>
    </div>
    <NoticeBar
      left-icon="voice"
      mode="closable"
      text="该组件只支持Touch事件,请使用移动模式/设备打开此示例"
    />
    <h3>基本示例</h3>
    <h4>基础</h4>
    <section class="section">
      <carousel
        dots
        :edgeSliderDistance="0.3"
        :sliderWidth="1"
        sliderHeight="160px"
        @onChange="handleChange"
      >
        <carousel-item v-for="(item, index) in sliders" :key="index">
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
      <h4>自定义</h4>
      <carousel
        dots
        infinite
        :dotStyle="dotStyle"
        :dotActiveStyle="dotActiveStyle"
        :sliderItemWidth="1"
        :sliderWidth="1"
        sliderHeight="160px"
      >
        <carousel-item v-for="(item, index) in sliders" :key="index">
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
      <h4>无限滑动</h4>
      <carousel
        infinite
        dots
        :edgeSliderDistance="0.3"
        :sliderWidth="1"
        :sliderItemWidth="1"
        sliderHeight="160px"
        @onChange="handleChange"
      >
        <carousel-item v-for="(item, index) in sliders" :key="index">
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
      <h4>自动播放</h4>
      <carousel
        autoplay
        infinite
        dots
        :edgeSliderDistance="0.3"
        :sliderWidth="1"
        :sliderItemWidth="1"
        sliderHeight="160px"
        @onChange="handleChange"
      >
        <carousel-item v-for="(item, index) in sliders" :key="index">
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
      <h4>切换按钮</h4>
      <carousel
        hasButton
        dots
        infinite
        :dotStyle="dotStyle"
        :dotActiveStyle="dotActiveStyle"
        :sliderWidth="1"
        :sliderItemWidth="1"
        sliderHeight="160px"
      >
        <carousel-item v-for="(item, index) in sliders" :key="index">
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
      <h4>cellSpacing</h4>
      <carousel
        dots
        :cellSpacing="30"
        :edgeSliderDistance="0.3"
        :sliderWidth="1"
        :sliderItemWidth="0.7"
        sliderHeight="160px"
      >
        <carousel-item
          v-for="(item, index) in sliders"
          :key="index"
          @click="clickPage(index)"
        >
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
      <h4>cellSpacing & center</h4>
      <carousel
        autoplay
        infinite
        ItemPosition="center"
        dots
        :cellSpacing="30"
        :edgeSliderDistance="0.3"
        :sliderWidth="1"
        :sliderItemWidth="0.6"
        sliderHeight="160px"
      >
        <carousel-item v-for="(item, index) in sliders" :key="index">
          <div class="carousel_content" :class="`slide_${index}`">{{ item.value }}</div>
        </carousel-item>
      </carousel>
    </section>
  </div>
</template>

<script>
export default {
  data() {
    return {
      sliders: [
        {
          key: "slide_1",
          value: "slide 1",
        },
        {
          key: "slide_2",
          value: "slide 2",
        },
        {
          key: "slide_3",
          value: "slide 3",
        },
        {
          key: "slide_4",
          value: "slide 4",
        },
      ],
      dotStyle: {
        'background-color': "#999999",
        width: "10px",
        height: "10px",
        'border-radius': '0'
      },
      dotActiveStyle: {
        "background-color": "#03C03C",
        width: "10px",
        height: "10px",
        'border-radius': '0'
      },
    };
  },
  methods: {
    handleChange(val) {},
    clickPage(index) {
      console.log(index);
    },
  },
};
</script>
<style lang="less" scoped>
.section {
  padding: 0 0 24px;
}
.demoH4 {
  margin: 24px 0;
}
.carousel_content {
  height: 100%;
  background: #1089FF;
  background: -webkit-linear-gradient(to right bottom, #1089FF, #40A9FF, #71FFFF);
  background: linear-gradient(to right bottom, #1089FF, #40A9FF, #71FFFF);
  display: flex;
  justify-content: space-around;
  align-items: center;
  font-size: 32px;
  color: #FFFFFF;
  text-shadow: 0px 1px 1px rgba(0, 0, 0, .15);
 }
</style>