vue中使用swiper缩略图( vue-awesome-swiper)

具体缩略图代码
参考文档
效果图如下:
在这里插入图片描述

✨一、安装指定版本的插件npm install vue-awesome-swiper @3.1.3
✨二、全局引入(main.js中引入)

	import VueAwesomeSwiper from 'vue-awesome-swiper'
	import 'swiper/dist/css/swiper.css'
	Vue.use(VueAwesomeSwiper)
	
✨三、使用

在这里插入图片描述

全部代码如下:

<template>
  <!-- banner区域 -->
  <div class="banner">
    <div class="wrapper">
      <div class="swiper-box" style="height: 500px">
        <!-- swiper1 -->
        <swiper :options="swiperOptionTop" class="gallery-top" ref="swiperTop">
          <swiper-slide class="" v-for="item in list" :key="item.id">
            <img :src="item.img" alt="" style="width: 100%" />
          </swiper-slide>

          <div
            class="swiper-button-next swiper-button-white"
            slot="button-next"
          ></div>
          <div
            class="swiper-button-prev swiper-button-white"
            slot="button-prev"
          ></div>
        </swiper>
        <!-- swiper2 Thumbs -->
        <swiper
          :options="swiperOptionThumbs"
          class="gallery-thumbs"
          ref="swiperThumbs"
        >
          <swiper-slide class="" v-for="item in list" :key="item.id">
            <img :src="item.img" alt="" style="height: 100%; width: 100%" />
          </swiper-slide>
        </swiper>
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      list: [
        {
          id: 0,
          img: "https://back.tobosu.com/new_impress_pic/water_mark/2022-05-09/6278db1f4e037.jpg",
        },
        {
          id: 1,
          img: "https://back.tobosu.com/new_impress_pic/water_mark/2022-05-09/6278db1f3899a.jpg",
        },
        {
          id: 2,
          img: "https://back.tobosu.com/new_impress_pic/water_mark/2022-05-09/6278db1f4e037.jpg",
        },
        {
          id: 3,
          img: "https://back.tobosu.com/new_impress_pic/water_mark/2022-05-09/6278db1f3899a.jpg",
        },
        {
          id: 4,
          img: "https://back.tobosu.com/new_impress_pic/water_mark/2022-05-09/6278db1f4e037.jpg",
        },
      ],
      swiperOptionTop: {
        spaceBetween: 10,
        loop: true,
        freeMode: true,
        loopedSlides: 4,
        navigation: {
          nextEl: ".swiper-button-next",
          prevEl: ".swiper-button-prev",
        },
      },
      swiperOptionThumbs: {
        spaceBetween: 10,
        centeredSlides: true,
        slidesPerView: "auto",
        touchRatio: 0.2,
        slideToClickedSlide: true,
        loop: true,
        loopedSlides: 4,
      },
      id: "",
    };
  },
  created() {},
  methods: {},
  mounted() {
    this.$nextTick(() => {
      const swiperTop = this.$refs.swiperTop.swiper;
      const swiperThumbs = this.$refs.swiperThumbs.swiper;
      swiperTop.controller.control = swiperThumbs;
      swiperThumbs.controller.control = swiperTop;
    });
  },
};
</script>
<style lang="less" scoped>
.banner {
  .wrapper {
    width: 1000px;
    margin: 300px auto;
  }
}

.swiper-container {
  background-color: #fff;
}
swiper-slide {
  img {
    width: 100%;
    height: 100%;
  }
}
.swiper-slide {
  background-size: cover;
  background-position: center;
}
.gallery-top {
  height: 80% !important;
  width: 100%;
}
.gallery-thumbs {
  height: 20% !important;
  box-sizing: border-box;
  padding: 10px 0;
}
.gallery-thumbs .swiper-slide {
  width: 25%;
  height: 100%;
  opacity: 0.4;
}
.gallery-thumbs .swiper-slide-active {
  opacity: 1;
}
</style>

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是使用vue-awesome-swiper实现缩略图轮播的示例代码: ```html <template> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="(item, index) in list" :key="index"> <img :src="item.imgUrl" alt=""> </div> </div> <div class="swiper-pagination"></div> <div class="swiper-scrollbar"></div> <div class="swiper-container thumbnail"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="(item, index) in list" :key="index"> <img :src="item.imgUrl" alt=""> </div> </div> </div> </div> </template> <script> import 'swiper/css/swiper.css' import { Swiper, Pagination, Scrollbar, Thumbs } from 'swiper/js/swiper.esm' Swiper.use([Pagination, Scrollbar, Thumbs]) export default { data() { return { list: [ { imgUrl: 'https://picsum.photos/id/1018/500/300' }, { imgUrl: 'https://picsum.photos/id/1015/500/300' }, { imgUrl: 'https://picsum.photos/id/1019/500/300' }, { imgUrl: 'https://picsum.photos/id/1020/500/300' }, { imgUrl: 'https://picsum.photos/id/1021/500/300' } ] } }, mounted() { const mySwiper = new Swiper('.swiper-container', { loop: true, pagination: { el: '.swiper-pagination' }, scrollbar: { el: '.swiper-scrollbar' }, thumbs: { swiper: { el: '.thumbnail', slidesPerView: 4, spaceBetween: 10, watchSlidesVisibility: true, watchSlidesProgress: true } } }) } } </script> <style> .thumbnail .swiper-slide { opacity: 0.4; transform: scale(0.5); transition: all 0.3s ease; } .thumbnail .swiper-slide-thumb-active { opacity: 1; transform: scale(1); } </style> ``` 在这个示例,我们使用vue-awesome-swiper插件来实现轮播效果,并使用了thumbs选项来实现缩略图轮播。具体来说,我们在Swiper的配置添加了thumbs选项,并在其配置了一个新的Swiper实例,用于显示缩略图。我们还通过watchSlidesVisibility和watchSlidesProgress选项来确保缩略图与主轮播图同步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃葡萄不吐葡萄皮嘻嘻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值