vue中使用不同版本的Swiper

2023-10-31

因为随着swiper的版本更新,各种版本出现的写法有所不同

swiper3

npm install swiper@3 --save-dev

因为版本的更新,swiper3逐渐使用的越来越少,但是还是有很多不必要的坑,

我们下载完之后只需要在全局main.js里面引入:

import 'swiper/dist/css/swiper.min.css'
import 'swiper/dist/js/swiper.min'

然后在我们需要的页面或组件引入

import Swiper from 'swiper'

引入之后我们就可以使用了,加上我们所需要的东西

dom结构

<div class="swiper-container">
      <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</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>

之后在我们的mounted生命周期里面

new Swiper(".swiper-container", {
      //自动轮播,这里直接写毫秒就可以了
      autoplay: 3000,

      //设置环路
      loop: true,

      // 如果需要分页器
      pagination: ".swiper-pagination",

      // 如果需要前进后退按钮
      nextButton: ".swiper-button-next",
      prevButton: ".swiper-button-prev",

      // 如果需要滚动条
      scrollbar: ".swiper-scrollbar",
});

样式

.swiper-container {
  height: 500px;
  width: 100%;
  .swiper-wrapper {
    .swiper-slide {
      width: 100%;
      height: 100%;
      background-color: #42b983;
      text-align: center;
      line-height: 500px;
    }
  }
}

完成这些swiper3的基本用法就全了

swiper5

这也是vue2目前用的最多的一个版本了,首先安装的时候我们需要执行这个命令同swiper一块安装的还有一个vue-awesome-swiper

npm install swiper vue-awesome-swiper --save

这里和swiper3的引入思维基本上是一致的

早main.js里面引入

import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/css/swiper.css'
Vue.use(VueAwesomeSwiper)

引入之后我们就可以直接写dom

<swiper ref="mySwiper" :options="swiperOptions">
      <swiper-slide>Slide 1</swiper-slide>
      <swiper-slide>Slide 2</swiper-slide>
      <swiper-slide>Slide 3</swiper-slide>

      <!-- 如果需要分液器 -->
      <div class="swiper-pagination" slot="pagination"></div>

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

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

然后data函数里面return一个

swiperOptions: {
        autoplay:true,
        //设置环路
        loop: true,
        // 如果需要分页器
        pagination: {
          el: ".swiper-pagination",
        },
        // 如果需要前进后退按钮
        navigation: {
          nextEl: ".swiper-button-next",
          prevEl: ".swiper-button-prev",
        },
        // 如果需要滚动条
        scrollbar: {
          el: ".swiper-scrollbar",
        },
}

然后计算函数computed需要写一个方法

swiper() {
      return this.$refs.mySwiper.$swiper;
}

样式和swiper3一样

完成这些swiper5的基本用法就ok了

swiper7

一般我们使用swiper7都是用vue3来写的,尽量不要用swiper6(踩得坑比较多)我们创建好项目后,用

npm i swiper

这样下载下来的swiper就是swiper7版本的

首先在页面或者组建中引入

import { Navigation, Pagination, Scrollbar, A11y,Autoplay } from "swiper";

import { Swiper, SwiperSlide } from "swiper/vue/swiper-vue.js";

import "swiper/swiper.min.css";
import "swiper/modules/navigation/navigation.min.css";
import "swiper/modules/pagination/pagination.min.css";
import "swiper/modules/scrollbar/scrollbar.min.css";
import "swiper/modules/autoplay/autoplay.min.css";

这里的引入和官网上介绍的有点不一样可以根据自己的文件夹进行修改

然后在components将我们引入的Swiper, SwiperSlide写进来

 components:{
     Swiper,
     SwiperSlide
 }

setup里面写

setup() {
    //获取swiper对象
    const onSwiper = (swiper) => {
      console.log(swiper);
    };

    //轮播图改变触发的事件
    const onSlideChange = () => {
      console.log("slide change");
    };

    return {
      onSwiper,
      onSlideChange,

      //抛出各种样式
      modules: [Navigation, Pagination, Scrollbar, A11y,Autoplay],
    };
 };

在dom上是这样写的

    <swiper
      :modules="modules"
      :slides-per-view="1"
      :space-between="50"
      navigation
      :pagination="{ clickable: true }"
      :scrollbar="{ draggable: true }"
      :autoplay="{Autoplay:true}"
      @swiper="onSwiper"
      @slideChange="onSlideChange"
    >
      <swiper-slide>Slide 1</swiper-slide>
      <swiper-slide>Slide 2</swiper-slide>
      <swiper-slide>Slide 3</swiper-slide>
    </swiper>

我们绑定的属性都是在setup中抛出的

slides-per-view="1" 是只显示一屏

navigation  左右按钮

scrollbar 是滚动条

autoplay 是让它自动轮播

pagination 分页器

最后写一点样式就ok了

.swiper-slide {
  height: 300px;
  line-height: 300px;
  font-size: 30px;
  text-align: center;
  background-color: pink;
}

总结:虽然不同版本的swiper有些不同,但总的思路是不变的,官网也会有一些笼统的写法

swiper官网

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue中使用不同版本的Swiper 的相关文章

  • 使用 npm 作为构建工具连接文件

    我最近发现我可以使用 npm 作为任务运行程序 而不是 gulp 或 grunt 到目前为止 一切都很棒 lint stylus jade uglify watch 等 但串联部分 我似乎无法实现 gulp 是这样的 gulp task s
  • 使用 jQuery / .data() 避免内存泄漏

    我正在使用 jQuery 动态创建 HTML 元素 现在需要针对它们存储 JavaScript 数据 但是 我现在担心内存泄漏 因为我实际上从未在对象上调用 删除 我 append 和 detach 它们 但从不 remove jQuery
  • 在 Javascript 中本地化字符串

    我目前正在使用 resx文件来管理我的 NET 服务器端资源 我正在处理的应用程序还允许开发人员将 JavaScript 插入各种事件处理程序中以进行客户端验证等 对我来说本地化 JavaScript 消息和字符串的最佳方法是什么 理想情况
  • 有没有办法监控页面上运行的 JavaScript 函数?

    有没有办法查看页面上正在执行哪些功能 如果我在页面上加载外部脚本 是否可以动态更改函数的功能或阻止其运行 HTML5 http www w3 org TR html5 scripting 1 html establish script bl
  • Google Charts(AreaChart)如何检测缩放变化

    我正在画一个面积图 在覆盖层上有一些标记 我正在使用explorer选项 仅限水平 以便用户放大和缩小 问题是我找不到一种方法来通知缩放更改 以便有机会更新制造商位置 有一个图表范围变化事件 但它不是由 AreaChart 触发的 我尝试检
  • Streamjs和linqjs有什么关系

    读完SICP后 我最近发现streamjs https github com dionyziz stream js 开发商参考linqjs http linqjs codeplex com 作为具有不同语法的替代实现 但我无法建立连接 St
  • 获取请求的客户端 IP 地址而不是 Cloudflare 的 IP 地址

    Cloudflare 会更改传入请求的 IP 地址 因为 Cloudflare 是我的网站和互联网之间的中间件 代理 我该怎么办获取请求的初始IP地址 而不是 Cloudflare 的 IP 地址 我听说过mod cloudflare但是这
  • 如何为 HTML5 音频元素制作加载栏?

    我正在尝试为 HTML5 音频元素制作一个加载栏 显示加载 缓冲的百分比 对于视频标签 可以使用以下方法进行计算 video buffered end 0 video duration 但我无法让它与音频标签一起使用 它只是返回一个固定值
  • 如何在提交表单之前删除自动数字格式?

    我正在使用 jQuery 插件自动数字 http www decorplanit com plugin 但是当我提交表单时 我无法删除之前字段上的格式POST 我尝试使用 input autonumeric destroy 和其他方法 但它
  • 光滑的旋转木马不工作

    我一直在尝试简单地实现 Slick Carousel 的工作 我已按照 Git 页面上的说明进行操作 https github com kenwheeler slick https github com kenwheeler slick 这
  • 将 Google 电子表格解析为 Javascript 数组

    我有一个 Google 电子表格 https docs google com spreadsheets d e 2PACX 1vRc8Lx0N wf3f1xAAXkNFUqQjaWPFcde3YjK02gCBqGpUrULwHC6NC0sn
  • 更新 Google 地图流量层而无需重新加载页面

    我的页面中嵌入了 Google 地图 我使用 initMap js 函数来初始化地图 function initMap var map new google maps Map document getElementById t map zo
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 哪些网络浏览器不支持 Javascript?以及如何识别客户端使用的是哪个浏览器?

    是否有不支持 javascript 的网络浏览器 以及如何确定客户端是否正在使用这些浏览器之一 或者客户端禁用了javascript 是否有不支持 javascript 的网络浏览器 当然 Lynx http en wikipedia or
  • 获得一次性绑定以适用于 ng-if

    这个问题已经被之前问过 https stackoverflow com questions 23969926 angular lazy one time binding for expressions 但我无法让该解决方案发挥作用 所以我想
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 如何在 JavaScript 中对关联数组进行排序?

    我需要为我的一个项目通过 JS 对关联数组进行排序 我发现这个函数在 Firefox 中运行得很好 但不幸的是它在 IE8 OPERA CHROME 中不起作用 无法找到使其在其他浏览器中运行的方法 或者找到另一个适合该目的的函数 我真的很
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • 如何设置 Firebase 用户的显示名称?

    根据Firebase网站上的JS Auth文档 它只展示了如何获取 displayName 以及如何更新 displayName 所以我尝试更新它 但这有点不合逻辑 因为你怎么能在不创建某些东西的情况下更新它呢 所以我的问题是 如何设置注册

随机推荐

  • Postman —— 配置环境变量

    PostMan是一套比较方便的接口测试工具 但我们在使用过程中 可能会出现创建了API请求 但API的URL会随着服务器IP地址的变化而改变 这样的情况下 如果每一个API都重新修改URL的话那将是非常的麻烦 所以PostMan中也提供环境
  • 【ViT 微调时关于position embedding如何插值(interpolate)的详解】

    目录 1 问题描述 2 positional embedding如何interpolate 3 输入的sequence length改变了ViT还能正常前向推断 本文适合对Vision Transformer有一定了解 知道内部结构和一些实
  • 项目6—利用中断实现单位数码管0~9显示

    项目5中有介绍中断问题 中断函数命名格式 函数值类型 函数名 形式参数列表 interrupt x interrupt为中断函数关键字 表中第二行T0中断 使能T0中断 就要将ET0置1 当它的中断标志位TF0变为1时 就会触发T0中断 这
  • UVA1613 K-GraphOddity

    UVA1613 K GraphOddity 题目传送门 刚看第一眼一点思路都没有 后面看了大佬的题解发现这道题其实是一道水题 用到的方法就是DFS遍历图 我是废物 题目意思很简单 就不分析了 下面直接说方法 首先求出k 然后dfs遍历一遍图
  • 出现这个问题 -bash: /etc/profile.d/env.sh: Permission denied

    记录一下搞了一个上午都没有解决的问题 如下图 出现的问题很奇怪 从root用户切换到普通用户是出现了 bash etc profile d env sh Permission denied 然后用root 把这个env sh文件 内容是PS
  • IP核之FIFO实验

    FIFO 的英文全称是 First In First Out 即先进先出 FPGA 使用的 FIFO 一般指的是对数据的存储具有先进先出特性的一个缓存器 常被用于数据的缓存 或者高速异步数据的交互也即所谓的跨时钟域信号传递 它与 FPGA
  • Python配置清华镜像源

    Python配置清华镜像源 1 前言 使用pip 安装服务器在国外的python 库时 下载需要很长时间 在配置文件中设置国内镜像可以提高速度 清华镜像源就是其中之一 2 pypi 镜像使用帮助 网址 https mirrors tuna
  • 将cookie字符串转化为json对象

    先看一下cookie长啥样 在控制台输入查看document cookie 如下图 分析可以看出cookie是以 key value key2 value2 的结构 好 接下来我们就将其转为json对象 function cookieToJ
  • base64 加密解密

    1 str lt gt bytes str bytes bytes s encoding utf8 bytes str str b encoding utf 8 此外还可通过编码解码的形式对二者进行转换 str 编码成 bytes 格式 s
  • Spring cloud+Zuul+JWT实现无状态统一身份认证和分布式限流

    本文主旨搭建一个无状态统一身份认证的系统 基于Spring cloud微服务架构 Eureka 实现服务的注册与发现 Zuul网关实现服务路由 请求过滤和限流功能 使用JWT规范实现客户登陆信息的服务端无状态话 相关文章参考 Spring
  • localStorage sessionStorage cookie的区别

    文章转载自 http blog csdn net cwzhsi article details 49557879 一 基本概念 Cookie cookie比较小 大小限制在4kb左右 是网景公司的前雇员 LouMontulli 在1993年
  • tilemap 菱形_【cocos3.x+tilemap】制作rpg小游戏(二)遮挡与碰撞

    前面制作了地图 现在就可以在工程中使用了 现在只实现了遮挡与碰撞 后续再实现点击屏幕移动 寻路算法 npc交互等 实现遮挡与碰撞 都需要解决一个核心问题 当前角色到底在哪一块瓦片上 也就是cocos坐标如何转化为TileMap瓦片坐标 这个
  • python函数中将变量名转换成字符串

    考虑到在日常中 常常需要对模型指标输出 但涉及多个模型的时候 需要对其有标示输出 故需要将模型变量名转换成字符串 看到的基本方法有两种 一 方法层面 方法1 函数内推荐 def namestr obj namespace return na
  • webpack.config.js基础配置(五大核心属性)

    在上一节webpack零基础入门中我们在安装完webpack 和 webpack cli依赖之后 直接通过npx webpack src main js mode development的方式对src下的js文件进行了打包 其中的 src
  • threejs 拖拽事件会触发点击事件

    记录three中拖拽场景会触发click事件 解决方法 dragNoClick gt const lock e gt 获取相机位置 this lockStart this map controls target clone const un
  • 深度学习框架以及过程----通俗解释

    这些框架是实现卷积神经网络的 深度学习框架就是帮助你深度学习的工具 就像铲子和锅一样 也有不同品牌 有caffe出品的 有facebook出品 有google出品 换言之这些就是一些库 一套深度学习框架 就是这个品牌的一套积木 各个组件就是
  • 组件(component)技术介绍

    转自 http blog csdn net touzani article details 1619472 组件 component 技术是各种软件重用方法中最重要的一种方法 也是分布式计算和Web服务的基础 网络应用中的软件组件 又被称为
  • vue+vant商品列表批量倒计时

    最近因为一个项目需要用到商品批量倒计时 当时使用vant封装好的组件CountDown编写 起初不知道 timeData 这个对象只需要传time的时间戳就可以自动生成 走了一大波弯路 现在想想也是醉了 最开始写这个倒计时的时候没有考虑到使
  • How to throw an error in MySql procedure?

    http stackoverflow com questions 4862911 how to throw an error in mysql procedure 9down votefavorite What is the mechani
  • vue中使用不同版本的Swiper

    因为随着swiper的版本更新 各种版本出现的写法有所不同 swiper3 npm install swiper 3 save dev 因为版本的更新 swiper3逐渐使用的越来越少 但是还是有很多不必要的坑 我们下载完之后只需要在全局m