Vue+Swiper实现轮播图效果

效果展示

  • 实现了自带切换按钮在图片外部
  • 实现了自定义的切换按钮

背景

在项目中使用到了轮播图,实现点击上一张下一张时实现循环显示,同时预览两个图片,并加以文字对图片的说明。

设计

使用 Swiper 插件,可以实现当前这个需求。核心代码就两块,一块布局,一块样式。参考官网发现有很多种实现方式,本文选择单页面引入的方式。

也可以选择 **Swiper Element**的形式

文本链接如下:swiperjs.com/element

版本

  • Vue 3.3.4

  • Swiper 11.0.4

  • Node 20.9.0

页面代码

如果遇到按钮无法生效,页面样式等问题,排查引入的 CSS 是否正确

  • 安装 Swiper

    text 复制代码
    npm install swiper
  • 页面布局

    text 复制代码
    <template>
      <div class="outbox">
        <swiper
        loop="true"
        :modules="modules"
        :slides-per-view="2"
        :space-between="50"
        navigation
        :pagination="{ clickable: true }"
        @swiper="onSwiper"
        @slideChange="onSlideChange"
        class="inbox"
      >
      <swiper-slide><img src="@/images/1.jpg" />第一个</swiper-slide>
        <swiper-slide><img src="@/images/2.jpg" />第二个</swiper-slide>
        <swiper-slide><img src="@/images/3.jpg" />第三个</swiper-slide>
        <swiper-slide><img src="@/images/4.jpg" />第四个</swiper-slide>
        <swiper-slide><img src="@/images/5.jpg" />第五个</swiper-slide>
      </swiper>
      
    
      </div>
            <!-- 如果需要导航按钮 -->
        <div class="swiper-button-prev" slot="button-prev" @click='swiperPrev'></div>
        <div class="swiper-button-next" slot="button-next" @click='swiperNext'></div>
    
    </template>
    <script>
      // import Swiper core and required modules
      import { Navigation, Pagination, Scrollbar, A11y } from 'swiper/modules';
      // Import Swiper Vue.js components
      import { Swiper, SwiperSlide } from 'swiper/vue';
      // Import Swiper styles
      import 'swiper/css';
      import 'swiper/css/navigation';
      import 'swiper/css/pagination';
      import 'swiper/css/scrollbar';
      // Import Swiper styles
      export default {
        components: {
          Swiper,
          SwiperSlide,
        },
        setup() {
          const onSwiper = (swiper) => {
            console.log(swiper);
          };
          const onSlideChange = () => {
            console.log('slide change');
          };
          return {
            onSwiper,
            onSlideChange,
            modules: [Navigation, Pagination, Scrollbar, A11y],
          };
        },
        methods: {
      swiperNext() {
        const swiper = document.querySelector('.swiper').swiper;
        swiper.slideNext();
      },
      swiperPrev() {
        const swiper = document.querySelector('.swiper').swiper;
        swiper.slidePrev();
      },
    }
      };
    </script>
    <style>
    .outbox{
      position: relative;
      padding: 0 50px;
      width: 1000px;
    }
    .inbox{
      margin-top: 50px;
      position: initial;
    }
    </style>
相关推荐
m0_748235959 分钟前
SpringBoot:解决前后端请求跨域问题(详细教程)
java·spring boot·后端
坚定信念,勇往无前1 小时前
springboot单机支持1w并发,需要做哪些优化
java·spring boot·后端
后端小肥肠2 小时前
【AI编程】Java程序员如何用Cursor 3小时搞定CAS单点登录前端集成
前端·后端·cursor
老友@2 小时前
OnlyOffice:前端编辑器与后端API实现高效办公
前端·后端·websocket·编辑器·onlyoffice
风月歌3 小时前
基于springboot校园健康系统的设计与实现(源码+文档)
java·spring boot·后端·mysql·毕业设计·mybatis·源码
m0_748239473 小时前
Spring Boot框架知识总结(超详细)
java·spring boot·后端
m0_748236113 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
linux·spring boot·后端
m0_748245924 小时前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
青灯文案15 小时前
如何在 SpringBoot 项目使用 Redis 的 Pipeline 功能
spring boot·redis·后端
m0_748249545 小时前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking