Carousel 走马灯

在有限空间内,循环播放同一类型的图片、文字等内容

基础用法

结合使用 el-carouselel-carousel-item 标签就得到了一个走马灯。 每一个页面的内容是完全可定制的,把你想要展示的内容放在 el-carousel-item 标签内。 默认情况下,在鼠标 hover 底部的指示器时就会触发切换。 通过设置 trigger 属性为 click,可以达到点击触发的效果。

Carousel 走马灯 - 图1

  1. <template>
  2. <div class="block text-center">
  3. <span class="demonstration"
  4. >Switch when indicator is hovered (default)</span
  5. >
  6. <el-carousel height="150px">
  7. <el-carousel-item v-for="item in 4" :key="item">
  8. <h3 class="small justify-center" text="2xl">{{ item }}</h3>
  9. </el-carousel-item>
  10. </el-carousel>
  11. </div>
  12. <div class="block text-center" m="t-4">
  13. <span class="demonstration">Switch when indicator is clicked</span>
  14. <el-carousel trigger="click" height="150px">
  15. <el-carousel-item v-for="item in 4" :key="item">
  16. <h3 class="small justify-center" text="2xl">{{ item }}</h3>
  17. </el-carousel-item>
  18. </el-carousel>
  19. </div>
  20. </template>
  21. <style scoped>
  22. .demonstration {
  23. color: var(--el-text-color-secondary);
  24. }
  25. .el-carousel__item h3 {
  26. color: #475669;
  27. opacity: 0.75;
  28. line-height: 150px;
  29. margin: 0;
  30. text-align: center;
  31. }
  32. .el-carousel__item:nth-child(2n) {
  33. background-color: #99a9bf;
  34. }
  35. .el-carousel__item:nth-child(2n + 1) {
  36. background-color: #d3dce6;
  37. }
  38. </style>

指示器

可以将指示器的显示位置设置在容器外部

indicator-position 属性定义了指示器的位置。 默认情况下,它会显示在走马灯内部,设置为 outside 则会显示在外部;设置为 none 则不会显示指示器。

Carousel 走马灯 - 图2

  1. <template>
  2. <el-carousel indicator-position="outside">
  3. <el-carousel-item v-for="item in 4" :key="item">
  4. <h3 text="2xl" justify="center">{{ item }}</h3>
  5. </el-carousel-item>
  6. </el-carousel>
  7. </template>
  8. <style scoped>
  9. .el-carousel__item h3 {
  10. display: flex;
  11. color: #475669;
  12. opacity: 0.75;
  13. line-height: 300px;
  14. margin: 0;
  15. }
  16. .el-carousel__item:nth-child(2n) {
  17. background-color: #99a9bf;
  18. }
  19. .el-carousel__item:nth-child(2n + 1) {
  20. background-color: #d3dce6;
  21. }
  22. </style>

切换箭头

可以设置切换箭头的显示时机

arrow 属性定义了切换箭头的显示时机。 默认情况下,切换箭头只有在鼠标 hover 到走马灯上时才会显示。 若将 arrow 设置为 always,则会一直显示;设置为 never,则会一直隐藏。

Carousel 走马灯 - 图3

  1. <template>
  2. <el-carousel :interval="5000" arrow="always">
  3. <el-carousel-item v-for="item in 4" :key="item">
  4. <h3 text="2xl" justify="center">{{ item }}</h3>
  5. </el-carousel-item>
  6. </el-carousel>
  7. </template>
  8. <style scoped>
  9. .el-carousel__item h3 {
  10. color: #475669;
  11. opacity: 0.75;
  12. line-height: 300px;
  13. margin: 0;
  14. text-align: center;
  15. }
  16. .el-carousel__item:nth-child(2n) {
  17. background-color: #99a9bf;
  18. }
  19. .el-carousel__item:nth-child(2n + 1) {
  20. background-color: #d3dce6;
  21. }
  22. </style>

卡片化

当页面宽度方向空间空余,但高度方向空间匮乏时,可使用卡片风格

type 属性设置为 card 即可启用卡片模式。 从交互上来说,卡片模式和一般模式的最大区别在于,卡片模式可以通过直接点击两侧的幻灯片进行切换。

Carousel 走马灯 - 图4

  1. <template>
  2. <el-carousel :interval="4000" type="card" height="200px">
  3. <el-carousel-item v-for="item in 6" :key="item">
  4. <h3 text="2xl" justify="center">{{ item }}</h3>
  5. </el-carousel-item>
  6. </el-carousel>
  7. </template>
  8. <style scoped>
  9. .el-carousel__item h3 {
  10. color: #475669;
  11. opacity: 0.75;
  12. line-height: 200px;
  13. margin: 0;
  14. text-align: center;
  15. }
  16. .el-carousel__item:nth-child(2n) {
  17. background-color: #99a9bf;
  18. }
  19. .el-carousel__item:nth-child(2n + 1) {
  20. background-color: #d3dce6;
  21. }
  22. </style>

垂直布局

默认情况下,directionhorizontal。 通过设置 directionvertical 来让走马灯在垂直方向上显示。

Carousel 走马灯 - 图5

  1. <template>
  2. <el-carousel height="200px" direction="vertical" :autoplay="false">
  3. <el-carousel-item v-for="item in 4" :key="item">
  4. <h3 text="2xl" justify="center">{{ item }}</h3>
  5. </el-carousel-item>
  6. </el-carousel>
  7. </template>
  8. <style scoped>
  9. .el-carousel__item h3 {
  10. color: #475669;
  11. opacity: 0.75;
  12. line-height: 200px;
  13. margin: 0;
  14. text-align: center;
  15. }
  16. .el-carousel__item:nth-child(2n) {
  17. background-color: #99a9bf;
  18. }
  19. .el-carousel__item:nth-child(2n + 1) {
  20. background-color: #d3dce6;
  21. }
  22. </style>
属性说明类型可选值默认值
heightcarousel 的高度string
initial-index初始状态激活的幻灯片的索引,从 0 开始number0
trigger指示器的触发方式stringhover/clickhover
autoplay是否自动切换booleantrue
interval自动切换的时间间隔,单位为毫秒number3000
indicator-position指示器的位置stringoutside/none
arrow切换箭头的显示时机stringalways/hover/neverhover
typecarousel 的类型stringcard
loop是否循环显示boolean-true
direction展示的方向stringhorizontal/verticalhorizontal
pause-on-hover鼠标悬浮时暂停自动切换boolean-true
事件名说明回调参数
change幻灯片切换时触发目前激活的幻灯片的索引,原幻灯片的索引
方法名说明参数
setActiveItem手动切换幻灯片需要切换的幻灯片的索引,从 0 开始;或相应 el-carousel-itemname 属性值
prev切换至上一张幻灯片
next切换至下一张幻灯片
插槽名说明子标签
-自定义默认内容Carousel-Item
属性说明类型可选值默认值
name幻灯片的名字,可用作 setActiveItem 的参数string
label该幻灯片所对应指示器的文本string
插槽名说明
自定义默认内容

源代码

组件 Carousel 走马灯 - 图6 文档 Carousel 走马灯 - 图7

贡献者

Carousel 走马灯 - 图8 三咲智子

Carousel 走马灯 - 图9 云游君

Carousel 走马灯 - 图10 JeremyWuuuuu

Carousel 走马灯 - 图11 qiang

Carousel 走马灯 - 图12 Delyan Haralanov

Carousel 走马灯 - 图13 卜启缘

Carousel 走马灯 - 图14 Aex

Carousel 走马灯 - 图15 LIUCHAO

Carousel 走马灯 - 图16 btea

Carousel 走马灯 - 图17 iamkun

Carousel 走马灯 - 图18 王永辉

Carousel 走马灯 - 图19 Zapic

Carousel 走马灯 - 图20 Bios Sun

Carousel 走马灯 - 图21 Sleepy Five

Carousel 走马灯 - 图22 on the field of hope

Carousel 走马灯 - 图23 Hades-li