• 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. }
    12. </script>
    13. <style scoped>
    14. /* For demo */
    15. .ant-carousel >>> .slick-slide {
    16. text-align: center;
    17. height: 160px;
    18. line-height: 160px;
    19. background: #364d79;
    20. overflow: hidden;
    21. }
    22. .ant-carousel >>> .slick-slide h3 {
    23. color: #fff;
    24. }
    25. </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. }
    12. </script>
    13. <style scoped>
    14. /* For demo */
    15. .ant-carousel >>> .slick-slide {
    16. text-align: center;
    17. height: 160px;
    18. line-height: 160px;
    19. background: #364d79;
    20. overflow: hidden;
    21. }
    22. .ant-carousel >>> .slick-slide h3 {
    23. color: #fff;
    24. }
    25. </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. }
    12. </script>
    13. <style scoped>
    14. /* For demo */
    15. .ant-carousel >>> .slick-slide {
    16. text-align: center;
    17. height: 160px;
    18. line-height: 160px;
    19. background: #364d79;
    20. overflow: hidden;
    21. }
    22. .ant-carousel >>> .slick-slide h3 {
    23. color: #fff;
    24. }
    25. </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 = 'https://raw.githubusercontent.com/vueComponent/ant-design-vue/master/components/vc-slick/assets/img/react-slick/'
    13. export default {
    14. data() {
    15. return {
    16. baseUrl,
    17. }
    18. },
    19. methods: {
    20. getImgUrl(i) {
    21. return `${baseUrl}abstract0${i + 1}.jpg`
    22. }
    23. }
    24. }
    25. </script>
    26. <style scoped>
    27. /* For demo */
    28. .ant-carousel >>> .slick-dots {
    29. height: auto
    30. }
    31. .ant-carousel >>> .slick-slide img{
    32. border: 5px solid #FFF;
    33. display: block;
    34. margin: auto;
    35. max-width: 80%;
    36. }
    37. .ant-carousel >>> .slick-thumb {
    38. bottom: -45px;
    39. }
    40. .ant-carousel >>> .slick-thumb li {
    41. width: 60px;
    42. height: 45px;
    43. }
    44. .ant-carousel >>> .slick-thumb li img {
    45. width: 100%;
    46. height: 100%;
    47. filter: grayscale(100%);
    48. }
    49. .ant-carousel >>> .slick-thumb li.slick-active img{
    50. filter: grayscale(0%);
    51. }
    52. </style>

    Carousel走马灯 - 图6

    自定义箭头

    自定义箭头展示。

    1. <template>
    2. <a-carousel arrows>
    3. <div
    4. slot="prevArrow" slot-scope="props"
    5. class="custom-slick-arrow"
    6. style="left: 10px;zIndex: 1"
    7. >
    8. <a-icon type="left-circle" />
    9. </div>
    10. <div
    11. slot="nextArrow" slot-scope="props"
    12. class="custom-slick-arrow"
    13. style="right: 10px"
    14. >
    15. <a-icon type="right-circle" />
    16. </div>
    17. <div><h3>1</h3></div>
    18. <div><h3>2</h3></div>
    19. <div><h3>3</h3></div>
    20. <div><h3>4</h3></div>
    21. </a-carousel>
    22. </template>
    23. <script>
    24. export default {}
    25. </script>
    26. <style scoped>
    27. /* For demo */
    28. .ant-carousel >>> .slick-slide {
    29. text-align: center;
    30. height: 160px;
    31. line-height: 160px;
    32. background: #364d79;
    33. overflow: hidden;
    34. }
    35. .ant-carousel >>> .custom-slick-arrow {
    36. width: 25px;
    37. height: 25px;
    38. font-size: 25px;
    39. color: #fff;
    40. background-color: rgba(31,45,61,.11);
    41. opacity: 0.3;
    42. }
    43. .ant-carousel >>> .custom-slick-arrow:before {
    44. display: none;
    45. }
    46. .ant-carousel >>> .custom-slick-arrow:hover {
    47. opacity: 0.5;
    48. }
    49. .ant-carousel >>> .slick-slide h3 {
    50. color: #fff;
    51. }
    52. </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