swiper如果loop和autoplay总是出现各种问题,第一次加载的时候,轮播是不动的,需要重新加载一下swiper才会轮播
我试了
observer:true//修改swiper自己或者子元素时,自动初始化
observeParents:true//修改swiper的父元素时,自动初始化swiper
这玩意,我没成功,只能用笨方法
这是我的swiper
<swiper
:key="swiperKey"
:slidesPerView="4"
:direction="'vertical'"
loop="true"
:autoplay="{ delay: 2500 }"
:modules="modules"
class="Goldtit"
>
<swiper-slide v-for="(gold, index) in goldpriceslist" :key="index" class="contentSwiper">
<div class="Sswiper">
<div style="flex: 1;color:#00FFE4;font-weight:800;">{{ gold.variety }}</div>
<div style="flex: 1;">{{ gold.limit }}</div>
<div style="flex: 1;">{{ gold.latestpri }}</div>
<div style="flex: 1;">{{ gold.totalvol }}</div>
</div>
</swiper-slide>
</swiper>
然后里面有
loop:"true"
和
:autoplay.....
这俩在一起的时候就会导致这个问题
然后我加了个key,通过延迟时间改变key的值来强制重新渲染swiper
data() {
return {
swiperKey: 0, // 初始 key 值
}
mounted() {
setTimeout(() => {
this.loadData();
}, 500);
},
methods: {
loadData() {
this.swiperKey++; // 更新 key,强制重新渲染 Swiper 组件
},