nuxt Swiper thumbs
时间: 2024-05-03 22:18:29 浏览: 271
在 Nuxt 中使用 Swiper 的缩略图功能可以按照以下步骤进行:
1. 安装 `swiper` 和 `swiper/vue` 包
```
npm install swiper swiper/vue
```
2. 在 Nuxt 的 `nuxt.config.js` 文件中添加以下代码:
```js
build: {
transpile: ['swiper', 'dom7']
}
```
这是因为 Swiper 依赖于一个名为 Dom7 的库,需要进行转译。
3. 在要使用 Swiper 的页面组件中引入 Swiper 和 Swiper 组件
```vue
<template>
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(image, index) in images" :key="index">
<img :src="image" />
</div>
</div>
<div class="swiper-container thumbs">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(image, index) in images" :key="index">
<img :src="image" />
</div>
</div>
</div>
</div>
</template>
<script>
import { Swiper, SwiperSlide } from 'swiper/vue';
export default {
components: {
Swiper,
SwiperSlide,
},
data() {
return {
images: ['image1.jpg', 'image2.jpg', 'image3.jpg'],
};
},
mounted() {
const mainSwiper = this.$refs.mainSwiper.$swiper;
const thumbsSwiper = this.$refs.thumbsSwiper.$swiper;
mainSwiper.controller.control = thumbsSwiper;
thumbsSwiper.controller.control = mainSwiper;
},
};
</script>
```
这里的 `images` 是一个包含图片路径的数组,`mainSwiper` 和 `thumbsSwiper` 分别表示主要的轮播图和缩略图轮播图。
4. 在 CSS 文件中添加样式
```css
.swiper-container.thumbs {
margin-top: 15px;
}
.swiper-container.thumbs .swiper-slide {
width: 20%;
height: auto;
margin-right: 10px;
}
.swiper-container.thumbs .swiper-slide:last-child {
margin-right: 0;
}
.swiper-container.thumbs .swiper-slide img {
width: 100%;
height: auto;
display: block;
opacity: 0.5;
transition: all 0.3s ease;
}
.swiper-container.thumbs .swiper-slide.swiper-slide-active img {
opacity: 1;
}
```
这里的 CSS 样式主要是针对缩略图轮播图进行的,可以根据自己的需求进行修改。
这样就可以在 Nuxt 中使用 Swiper 的缩略图功能了。
阅读全文