Element Plus 走马灯怎么设置自动轮播不生效?
我用 Element Plus 的 Carousel 组件,想让它自动轮播,但加了 autoplay 属性后完全没反应,还是得手动点。是不是还要配其他参数?我试过把 interval 设成 2000,也没用。
下面是我的代码:
<el-carousel height="200px" autoplay :interval="2000">
<el-carousel-item v-for="item in banners" :key="item.id">
<img :src="item.url" alt="" style="width:100%;height:100%;object-fit:cover" />
</el-carousel-item>
</el-carousel>
Element Plus 的 Carousel 默认就是自动轮播的,
autoplay属性实际上是控制是否自动播放,默认为 true。你现在加了autoplay没反应,大概率是版本问题——你用的是哪个版本的 Element Plus?如果是 2.3.8 之后的版本,属性改成了
indicator和trigger这些新写法。你可以试试直接去掉autoplay和:interval,看看默认是否就自动轮播了。如果默认也不行,检查一下包裹
el-carousel的父容器有没有设置固定宽度或者overflow: hidden,有时候 CSS 冲突会导致轮播失效。还有一个常见坑:如果你的
banners数组是异步获取的(比如接口返回的),在数据还没加载完就渲染了 carousel,也会导致轮播出问题。解决办法是用v-if等数据加载完再渲染:试试看,先确认数据加载时机。
autoplay属性要加冒号绑定,写成:autoplay="true"或者直接autoplay都行。我本地跑了下,标准写法应该是这样的:
另外检查下你的banners数据是不是空数组?如果是空的话确实不会轮播。这种坑我踩过好几次了,文档里其实写了但很容易忽略。