当前位置:首页 > VUE

vue swiper实现图片轮播

2026-01-21 00:53:54VUE

安装 Swiper 依赖

在 Vue 项目中安装 Swiper 和对应的 Vue 封装库:

npm install swiper vue-awesome-swiper

引入 Swiper 组件和样式

在需要使用的组件中引入 Swiper 和样式文件:

import { Swiper, SwiperSlide } from 'swiper/vue';
import 'swiper/css';
import 'swiper/css/pagination';
import 'swiper/css/navigation';

基本轮播实现

在模板中使用 Swiper 组件,绑定图片数据:

vue swiper实现图片轮播

<template>
  <swiper
    :slides-per-view="1"
    :space-between="50"
    @swiper="onSwiper"
    @slideChange="onSlideChange"
  >
    <swiper-slide v-for="(image, index) in images" :key="index">
      <img :src="image.url" :alt="image.alt">
    </swiper-slide>
  </swiper>
</template>

<script>
export default {
  data() {
    return {
      images: [
        { url: 'image1.jpg', alt: 'Image 1' },
        { url: 'image2.jpg', alt: 'Image 2' },
        { url: 'image3.jpg', alt: 'Image 3' }
      ]
    }
  },
  methods: {
    onSwiper(swiper) {
      console.log(swiper);
    },
    onSlideChange() {
      console.log('slide change');
    }
  }
}
</script>

添加导航和分页

引入 Pagination 和 Navigation 模块并配置:

import { Pagination, Navigation } from 'swiper/modules';

export default {
  setup() {
    return {
      modules: [Pagination, Navigation],
    };
  },
  // 其他代码...
}

在模板中添加对应配置:

vue swiper实现图片轮播

<swiper
  :slides-per-view="1"
  :space-between="50"
  :pagination="{ clickable: true }"
  :navigation="true"
  :modules="modules"
>
  <!-- swiper-slide内容 -->
</swiper>

自动播放配置

添加 Autoplay 模块并配置:

import { Autoplay } from 'swiper/modules';

export default {
  setup() {
    return {
      modules: [Autoplay],
    };
  },
  // 其他代码...
}

在模板中配置自动播放:

<swiper
  :autoplay="{
    delay: 2500,
    disableOnInteraction: false,
  }"
  :modules="modules"
>
  <!-- swiper-slide内容 -->
</swiper>

响应式配置

通过 breakpoints 属性实现不同屏幕尺寸下的不同显示:

<swiper
  :breakpoints="{
    320: {
      slidesPerView: 1,
      spaceBetween: 20
    },
    768: {
      slidesPerView: 2,
      spaceBetween: 30
    },
    1024: {
      slidesPerView: 3,
      spaceBetween: 40
    }
  }"
>
  <!-- swiper-slide内容 -->
</swiper>

完整示例代码

<template>
  <swiper
    :slides-per-view="1"
    :space-between="50"
    :pagination="{ clickable: true }"
    :navigation="true"
    :autoplay="{ delay: 2500 }"
    :modules="modules"
    :breakpoints="breakpoints"
  >
    <swiper-slide v-for="(image, index) in images" :key="index">
      <img :src="image.url" :alt="image.alt">
    </swiper-slide>
  </swiper>
</template>

<script>
import { Swiper, SwiperSlide } from 'swiper/vue';
import { Pagination, Navigation, Autoplay } from 'swiper/modules';
import 'swiper/css';
import 'swiper/css/pagination';
import 'swiper/css/navigation';

export default {
  components: {
    Swiper,
    SwiperSlide
  },
  setup() {
    return {
      modules: [Pagination, Navigation, Autoplay],
      breakpoints: {
        320: { slidesPerView: 1 },
        768: { slidesPerView: 2 },
        1024: { slidesPerView: 3 }
      }
    };
  },
  data() {
    return {
      images: [
        { url: 'image1.jpg', alt: 'Image 1' },
        { url: 'image2.jpg', alt: 'Image 2' },
        { url: 'image3.jpg', alt: 'Image 3' }
      ]
    };
  }
};
</script>

<style scoped>
.swiper {
  width: 100%;
  height: 300px;
}
.swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
</style>

标签: 图片vue
分享给朋友:

相关文章

vue实现滚动截屏

vue实现滚动截屏

实现滚动截屏的基本思路 滚动截屏通常指对超出可视区域的长页面进行完整截图。在Vue中,可以通过结合DOM操作、Canvas绘制及第三方库实现。以下是具体方法: 使用html2canvas库实现 安装…

vue实现继承语法糖

vue实现继承语法糖

在Vue中实现继承可以通过多种方式模拟类继承的效果,以下是常见的几种方法: 使用mixins实现逻辑复用 通过Vue的mixins机制共享组件选项,达到类似继承的效果: const Bas…

vue实现多用户登录

vue实现多用户登录

实现多用户登录的基本思路 在Vue中实现多用户登录通常需要结合后端API完成身份验证,并通过前端路由、状态管理(如Vuex或Pinia)和本地存储(如localStorage)来管理用户会话。以下是关…

vue实现积分

vue实现积分

Vue 实现积分功能 在 Vue 中实现积分功能通常涉及前端展示、交互逻辑以及与后端 API 的通信。以下是常见的实现方法和步骤: 积分展示组件 创建一个积分展示组件,用于显示当前用户的积分。可以…

vue广告实现

vue广告实现

Vue 广告实现方法 在 Vue 项目中实现广告功能可以通过多种方式完成,具体取决于广告类型和需求。以下是几种常见的实现方法: 使用第三方广告平台 许多广告平台如 Google AdSense、百…

vue 实现拖拽

vue 实现拖拽

Vue 实现拖拽功能 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 <template> &…