vue3 swiper ts 關(guān)于首屏不會(huì)自動(dòng)播放
主要原因是版本問題
"swiper": "^11.0.5",
引入
import {Swiper, SwiperSlide} from 'swiper/vue';
import { Autoplay} from 'swiper/modules
';
const modules = [Autoplay];
import 'swiper/css';
import 'swiper/css/autoplay';
const swiperInstance = ref<typeof Swiper | null>(null);
const onSwiper = (swiper: typeof Swiper) => {
swiperInstance.value = swiper;
};
const onSlideChange = () => {
// console.log('slide change');
};
const pauseSwiper = () => {
if (swiperInstance.value) {
swiperInstance.value.autoplay.stop();
}
};
const resumeSwiper = () => {
if (swiperInstance.value) {
swiperInstance.value.autoplay.start();
}
};
const goPrev = ()=> {
if (swiperInstance.value) {
swiperInstance.value.slidePrev();
}
};
const goNext = () => {
if (swiperInstance.value) {
swiperInstance.value.slideNext();
}
};
<swiper
class="swiper-container"
:slides-per-view="1"
:space-between="0"
direction="vertical"
@swiper="onSwiper"
@slideChange="onSlideChange"
:modules="modules"
:pagination="{ clickable: true }"
:autoplay="{
delay: 2000,
disableOnInteraction: false,
}"
:loop="true"
@mouseenter="pauseSwiper"
@mouseleave="resumeSwiper"
>
<swiper-slide v-for="(j,k) in len" :key="'swiper'+k">
<div class="bottom-position-item" v-for="(item,index) in swiperDatas.slice(4*k,(k+1)*4)" :key="'rate'+index" :class="{ 'second': index==1, 'third': index==2, 'fourth': index==3}">
<div class="circle-item">
<p class="circle-value">{{item.carbonEmission}}</p>
<p class="circle-title">{{item.branchFactory}}</p>
</div>
</div>
</swiper-slide>
</swiper>
let swiperDatas= reactive<any>([
{branchFactory:'一車間','carbonEmission':'93%'},
])
let statisticsDatas=reactive<any>({obj:{}});
let len =ref<any>(0)
const getCarbon = (u = api.carbon) => {
$httpAsync({
url: u,
method: 'GET'
}).then((res: any) => {
if (res.code === 200) {
swiperDatas=res.data;
len.value=Math.ceil(swiperDatas.length/4);
}
})
}
//關(guān)鍵一步,提前獲取要循環(huán)的數(shù)據(jù)
onBeforeMount(() => {
getBranchFactory();
});

浙公網(wǎng)安備 33010602011771號(hào)