如何在vue中用Swiper插件,生成轮播图

本文介绍了如何在Vue项目中使用Swiper插件创建响应式轮播图,包括官网资源、版本选择、下载安装、代码实现、样式调整以及注意事项。适合初学者和开发者快速上手Swiper6+在Vue中的应用。

首先,swiper插件的官方网站为:https://www.swiper.com.cn/,其中包括了如何使用,如何更改轮播图样式的方法,后面遇到问题可以查swiper官网的API文档。
vue2推荐用Swiper5,vue3+推荐用Swiper6+。但注意,Swiper7默认容器是’.swiper’,而Swiper6一下使用的则是’swiper-contanier’。

下载Swiper包

npm install swiper@5

导入swiper

<script>
  import Swiper from 'swiper'
  import 'swiper/css/swiper.min.css'

  export default {
    name: "Swiper",
    props: {
      banner: {
        type: Array,
        default: null
      }
    },
    //因为axios请求图片资源是异步请求,而mounted是同步的生命周期,所以不加  的话去运行会没有js功能,
    //所以需要在更新完毕banner之后,再进行js初始化
    updated() {
      new Swiper('.swiper-container', {
        //direction: 'vertical', // 垂直切换选项
        loop: true, // 循环模式选项

        // 如果需要分页器
        pagination: {
          el: '.swiper-pagination',
        },

        // 如果需要前进后退按钮
        navigation: {
          nextEl: '.swiper-button-next',
          prevEl: '.swiper-button-prev',
        },

        // 如果需要滚动条
        /*         scrollbar: {
                  el: '.swiper-scrollbar',
                }, */
        //自动切换
        autoplay: true,
        //触摸比例
        touchRatio: 2,
      })
    },
  }
</script>

使用Swiper

<template>
  <div class="swiper-main">
    <div class="swiper-container">
      <div class="swiper-wrapper">
        <div v-for="item in banner" class="swiper-slide">
          <a :href="item.link"> <img :src="item.image" alt=""></a>
        </div>
      </div>
      <!-- 如果需要分页器 -->
      <div class="swiper-pagination"></div>

      <!-- 如果需要导航按钮 -->
      <div class="swiper-button-prev"></div>
      <div class="swiper-button-next"></div>

      <!-- 如果需要滚动条 -->
      <!--       <div class="swiper-scrollbar"></div> -->
    </div>
  </div>
</template>

调整Swiper样式

<style>
  .swiper-container {
    display: flex;
    margin: 0 auto;
    --swiper-navigation-color: #666;
    --swiper-navigation-size: 20px;
    --swiper-pagination-color: #ff5777;

  }

  .swiper-slide img {
    width: 100%;
    height: 100%;
    display: table-cell;
    text-align: center;
  }
</style>

效果图

请添加图片描述

### 实现 VueSwiper 垂直轮播图 为了实现基于 Vue 的垂直轮播图,可以按照如下方法操作: #### 安装依赖包 首先,在项目中安装 `vue-awesome-swiper` 插件来适配 Swiper3 和 Vue2 版本。通过命令行工具执行以下指令完成安装[^2]: ```bash npm install vue-awesome-swiper@2.6.7 --save ``` #### 引入 Swiper 资源文件 接着,在项目的入口文件 `main.js` 中全局引入并注册 Swiper 组件及其样式表: ```javascript // 引入 Swiper CSS 文件 require('swiper/dist/css/swiper.css'); import VueAwesomeSwiper from 'vue-awesome-swiper'; Vue.use(VueAwesomeSwiper); ``` #### 创建 Swiper 组件配置项 定义一个包含特定属性的对象用于控制 Swiper 行为,这里特别指定了 `direction: "vertical"` 来启用垂直滚动效果,并设置了其他一些参数以增强用户体验[^3]。 ```javascript export const swiperOptionVertical = { slidesPerView: 'auto', direction: 'vertical', // 设置为垂直方向切换 grabCursor: true, autoHeight: true, // 自动调整高度 observer: true, // 修改 Swiper 及其子元素时自动更新 observeParents: true // 修改父级容器尺寸变化时也触发重新布局 }; ``` #### 编写模板结构与逻辑代码 最后一步是在 `.vue` 单文件组件内编写 HTML 结构以及相应的 JavaScript 方法,确保能够正常渲染 Swiper 并应用上述配置选项。 ```html <template> <div class="swiper-container"> <!-- Swiper --> <swiper :options="swiperOptionVertical" ref="mySwiper"> <swiper-slide v-for="(item,index) in items" :key="index">{{ item }}</swiper-slide> <div class="swiper-pagination" slot="pagination"></div> </swiper> </div> </template> <script> import { swiper, swiperSlide } from 'vue-awesome-swiper'; export default { name: 'App', components: { swiper, swiperSlide }, data() { return { items: ['Item 1', 'Item 2', 'Item 3'], swiperOptionVertical } } } </script> ``` 这样就完成使用 VueSwiper 构建简单垂直轮播图的过程。可以根据实际需求进一步定制外观和交互功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值