当前位置:首页 > 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 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…

vue 实现拖拉

vue 实现拖拉

Vue 实现拖拽功能的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue实现 treegrid

vue实现 treegrid

Vue 实现 TreeGrid 的方法 使用现成组件库 Element UI、Ant Design Vue 等流行组件库提供了现成的 TreeTable/TreeGrid 组件,可直接使用。 Ele…

vue实现图片拖拽

vue实现图片拖拽

实现图片拖拽功能 在Vue中实现图片拖拽功能可以通过HTML5的拖放API结合Vue的事件处理来完成。以下是一个完整的实现方法: 基础拖拽实现 为图片元素添加draggable属性并绑定相关事件:…

vue 实现文字滚动

vue 实现文字滚动

Vue 实现文字滚动效果 使用CSS动画实现 通过CSS的@keyframes和transform属性实现文字滚动效果: <template> <div class="scro…