您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Vue Swiper怎么使用
## 一、Swiper简介
Swiper是纯JavaScript打造的滑动特效插件,专门为移动端触摸滑动设计,同时兼容PC端。在Vue项目中使用Swiper可以实现:
- 轮播图/Banner展示
- 图片/内容画廊
- 横向/纵向滑动导航
- 多屏滑动切换等效果
## 二、安装Swiper
### 1. 安装核心包
```bash
npm install swiper
# 或
yarn add swiper
# Vue 2 项目
npm install swiper@5 vue-awesome-swiper
# Vue 3 项目
npm install swiper@8 swiper/vue
<template>
<swiper
:modules="modules"
:slides-per-view="3"
:space-between="50"
navigation
@swiper="onSwiper"
>
<swiper-slide v-for="(slide, index) in slides" :key="index">
<img :src="slide.image" />
</swiper-slide>
</swiper>
</template>
<script>
import { Swiper, SwiperSlide } from 'swiper/vue'
import { Navigation } from 'swiper'
export default {
components: { Swiper, SwiperSlide },
setup() {
const onSwiper = (swiper) => {
console.log(swiper)
}
return {
modules: [Navigation],
slides: [
{ image: 'image1.jpg' },
{ image: 'image2.jpg' },
{ image: 'image3.jpg' }
],
onSwiper
}
}
}
</script>
<style>
@import 'swiper/css';
@import 'swiper/css/navigation';
</style>
参数 | 类型 | 说明 |
---|---|---|
slidesPerView | number | 可视幻灯片数量 |
spaceBetween | number | 幻灯片间距(px) |
loop | boolean | 是否循环播放 |
autoplay | object | 自动播放配置 |
navigation | boolean | 显示前进/后退按钮 |
pagination | object | 分页器配置 |
autoplay: {
delay: 2500,
disableOnInteraction: false
}
pagination: {
clickable: true,
renderBullet: (index, className) => {
return `<span class="${className}">${index + 1}</span>`
}
}
<swiper
direction="vertical"
:slides-per-view="2"
:space-between="30"
>
<!-- slides -->
</swiper>
<template>
<swiper @swiper="setThumbsSwiper">
<!-- 主swiper内容 -->
</swiper>
<swiper
:thumbs="{ swiper: thumbsSwiper }"
>
<!-- 缩略图内容 -->
</swiper>
</template>
<script>
import { Thumbs } from 'swiper'
export default {
data() {
return {
thumbsSwiper: null
}
},
methods: {
setThumbsSwiper(swiper) {
this.thumbsSwiper = swiper
}
}
}
</script>
breakpoints: {
320: {
slidesPerView: 1,
spaceBetween: 10
},
768: {
slidesPerView: 2,
spaceBetween: 20
},
1024: {
slidesPerView: 3,
spaceBetween: 30
}
}
当异步加载数据后,Swiper需要重新初始化:
watch: {
slides(newVal) {
if (newVal.length) {
this.$nextTick(() => {
this.swiper.update()
})
}
}
}
在scoped样式中需要深度选择器:
::v-deep .swiper-pagination-bullet {
background: white;
}
.swiper-button-next,
.swiper-button-prev {
color: #ff0000;
&::after {
font-size: 24px;
}
}
lazy
模块实现图片懒加载virtual
模式swiper.destroy()
import {
Navigation,
Pagination,
Autoplay,
EffectFade,
Thumbs
} from 'swiper'
export default {
modules: [Navigation, Pagination, Autoplay, EffectFade, Thumbs],
swiperOptions: {
slidesPerView: 1,
spaceBetween: 30,
loop: true,
effect: 'fade',
autoplay: {
delay: 3000,
pauseOnMouseEnter: true
},
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev'
},
pagination: {
el: '.swiper-pagination',
type: 'progressbar'
},
thumbs: {
swiper: thumbsSwiper
}
}
}
通过本文您应该掌握了: - Vue 2/3中Swiper的安装差异 - 基础轮播实现方法 - 常用配置参数解析 - 高级功能实现技巧 - 常见问题解决方案
建议在实际项目中根据需求选择合适的配置组合,并通过Swiper官方文档获取最新API参考。 “`
(注:实际字数约1350字,此处为精简展示版,完整版包含更多细节示例和说明)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。