下载:
npm i swiper
Vue3示例代码:
<template>
<div class="swiper mySwiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div>111</div>
<div>222</div>
</div>
<div class="swiper-slide">Slide 2</div>
<div class="swiper-slide">Slide 3</div>
<div class="swiper-slide">Slide 4</div>
<div class="swiper-slide">Slide 5</div>
<div class="swiper-slide">Slide 6</div>
<div class="swiper-slide">Slide 7</div>
<div class="swiper-slide">Slide 8</div>
<div class="swiper-slide">Slide 9</div>
</div>
</div>
<button @click="slideToIndex(1)">点击切换</button>
</template>
<script>
import Swiper from 'swiper';
import 'swiper/swiper-bundle.min.css';
export default {
data() {
return {
swiper: null,
activeIndex: 0, // 用于存储当前活动的滑动项下标
};
},
mounted() {
this.swiper = new Swiper(".mySwiper", {
autoplay: {
delay: 3000,
disableOnInteraction: false,
},
on: {
slideChange: () => {
this.activeIndex = this.swiper.activeIndex; // 更新当前活动项下标
}
}
});
},
methods: {
slideToIndex(index) {
if (this.swiper) {
this.swiper.slideTo(index); // 使用 Swiper 的 slideTo 方法切换到指定下标
}
},
},
};
</script>
<style scoped>
html,
body {
position: relative;
height: 100%;
}
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
.swiper {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.swiper-slide img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
</style>