• Carousel 走马灯
    • 何时使用
    • 代码演示
      • 基本
      • 垂直
      • 渐显
      • 自动切换
      • 自定义分页
      • 自定义箭头
  • API
  • 方法

    Carousel 走马灯

    旋转木马,一组轮播的区域。

    何时使用

    • 当有一组平级的内容。
    • 当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。
    • 常用于一组图片或卡片轮播。

    代码演示

    Carousel 走马灯 - 图1

    基本

    最简单的用法。

    1. <template>
    2. <a-carousel :afterChange="onChange">
    3. <div><h3>1</h3></div>
    4. <div><h3>2</h3></div>
    5. <div><h3>3</h3></div>
    6. <div><h3>4</h3></div>
    7. </a-carousel>
    8. </template>
    9. <script>
    10. export default {
    11. methods: {
    12. onChange(a, b, c) {
    13. console.log(a, b, c);
    14. },
    15. },
    16. };
    17. </script>
    18. <style scoped>
    19. /* For demo */
    20. .ant-carousel >>> .slick-slide {
    21. text-align: center;
    22. height: 160px;
    23. line-height: 160px;
    24. background: #364d79;
    25. overflow: hidden;
    26. }
    27. .ant-carousel >>> .slick-slide h3 {
    28. color: #fff;
    29. }
    30. </style>

    Carousel 走马灯 - 图2

    垂直

    垂直显示。

    1. <template>
    2. <a-carousel vertical>
    3. <div><h3>1</h3></div>
    4. <div><h3>2</h3></div>
    5. <div><h3>3</h3></div>
    6. <div><h3>4</h3></div>
    7. </a-carousel>
    8. </template>
    9. <script>
    10. export default {};
    11. </script>
    12. <style scoped>
    13. /* For demo */
    14. .ant-carousel >>> .slick-slide {
    15. text-align: center;
    16. height: 160px;
    17. line-height: 160px;
    18. background: #364d79;
    19. overflow: hidden;
    20. }
    21. .ant-carousel >>> .slick-slide h3 {
    22. color: #fff;
    23. }
    24. </style>

    Carousel 走马灯 - 图3

    渐显

    切换效果为渐显。

    1. <template>
    2. <a-carousel effect="fade">
    3. <div><h3>1</h3></div>
    4. <div><h3>2</h3></div>
    5. <div><h3>3</h3></div>
    6. <div><h3>4</h3></div>
    7. </a-carousel>
    8. </template>
    9. <script>
    10. export default {};
    11. </script>
    12. <style scoped>
    13. /* For demo */
    14. .ant-carousel >>> .slick-slide {
    15. text-align: center;
    16. height: 160px;
    17. line-height: 160px;
    18. background: #364d79;
    19. overflow: hidden;
    20. }
    21. .ant-carousel >>> .slick-slide h3 {
    22. color: #fff;
    23. }
    24. </style>

    Carousel 走马灯 - 图4

    自动切换

    定时切换下一张。

    1. <template>
    2. <a-carousel autoplay>
    3. <div><h3>1</h3></div>
    4. <div><h3>2</h3></div>
    5. <div><h3>3</h3></div>
    6. <div><h3>4</h3></div>
    7. </a-carousel>
    8. </template>
    9. <script>
    10. export default {};
    11. </script>
    12. <style scoped>
    13. /* For demo */
    14. .ant-carousel >>> .slick-slide {
    15. text-align: center;
    16. height: 160px;
    17. line-height: 160px;
    18. background: #364d79;
    19. overflow: hidden;
    20. }
    21. .ant-carousel >>> .slick-slide h3 {
    22. color: #fff;
    23. }
    24. </style>

    Carousel 走马灯 - 图5

    自定义分页

    自定义分页展示。

    1. <template>
    2. <a-carousel arrows dotsClass="slick-dots slick-thumb">
    3. <a slot="customPaging" slot-scope="props">
    4. <img :src="getImgUrl(props.i)" />
    5. </a>
    6. <div v-for="item in 4">
    7. <img :src="baseUrl+'abstract0'+item+'.jpg'" />
    8. </div>
    9. </a-carousel>
    10. </template>
    11. <script>
    12. const baseUrl =
    13. 'https://raw.githubusercontent.com/vueComponent/ant-design-vue/master/components/vc-slick/assets/img/react-slick/';
    14. export default {
    15. data() {
    16. return {
    17. baseUrl,
    18. };
    19. },
    20. methods: {
    21. getImgUrl(i) {
    22. return `${baseUrl}abstract0${i + 1}.jpg`;
    23. },
    24. },
    25. };
    26. </script>
    27. <style scoped>
    28. /* For demo */
    29. .ant-carousel >>> .slick-dots {
    30. height: auto;
    31. }
    32. .ant-carousel >>> .slick-slide img {
    33. border: 5px solid #fff;
    34. display: block;
    35. margin: auto;
    36. max-width: 80%;
    37. }
    38. .ant-carousel >>> .slick-thumb {
    39. bottom: -45px;
    40. }
    41. .ant-carousel >>> .slick-thumb li {
    42. width: 60px;
    43. height: 45px;
    44. }
    45. .ant-carousel >>> .slick-thumb li img {
    46. width: 100%;
    47. height: 100%;
    48. filter: grayscale(100%);
    49. }
    50. .ant-carousel >>> .slick-thumb li.slick-active img {
    51. filter: grayscale(0%);
    52. }
    53. </style>

    Carousel 走马灯 - 图6

    自定义箭头

    自定义箭头展示。

    <template>
      <a-carousel arrows>
        <div
          slot="prevArrow"
          slot-scope="props"
          class="custom-slick-arrow"
          style="left: 10px;zIndex: 1"
        >
          <a-icon type="left-circle" />
        </div>
        <div slot="nextArrow" slot-scope="props" class="custom-slick-arrow" style="right: 10px">
          <a-icon type="right-circle" />
        </div>
        <div><h3>1</h3></div>
        <div><h3>2</h3></div>
        <div><h3>3</h3></div>
        <div><h3>4</h3></div>
      </a-carousel>
    </template>
    <script>
      export default {};
    </script>
    <style scoped>
      /* For demo */
      .ant-carousel >>> .slick-slide {
        text-align: center;
        height: 160px;
        line-height: 160px;
        background: #364d79;
        overflow: hidden;
      }
    
      .ant-carousel >>> .custom-slick-arrow {
        width: 25px;
        height: 25px;
        font-size: 25px;
        color: #fff;
        background-color: rgba(31, 45, 61, 0.11);
        opacity: 0.3;
      }
      .ant-carousel >>> .custom-slick-arrow:before {
        display: none;
      }
      .ant-carousel >>> .custom-slick-arrow:hover {
        opacity: 0.5;
      }
    
      .ant-carousel >>> .slick-slide h3 {
        color: #fff;
      }
    </style>
    

    API

    参数说明类型默认值
    afterChange切换面板的回调function(current)
    autoplay是否自动切换booleanfalse
    beforeChange切换面板的回调function(from, to)
    dots是否显示面板指示点booleantrue
    easing动画效果stringlinear
    effect动画效果函数,可取 scrollx, fadestringscrollx
    vertical垂直显示booleanfalse

    方法

    名称描述
    goTo(slideNumber, dontAnimate)切换到指定面板, dontAnimate = true 时,不使用动画
    next()切换到下一面板
    prev()切换到上一面板

    更多参数可参考:vc-slick props