详解swiper在vue中的应用(以3.0为例)


Posted in Javascript onSeptember 20, 2018

一、使用方法

官网地址

参考此文章(点击我)

二、常见情况

图片需要动态获取时

待数据加载成功且渲染完毕后,进行节点初始化。例:

axios.post(‘接口地址', 参数).then(response => {  
  this.pages = response.data; //pages 渲染数据的数组
  this.$nextTick(() => { //渲染结束
    // mySwiper 里面的属性按需配置,详情见官网
    let mySwiper = new Swiper(".swiper-container", { 
      initialSlide :0,//默认播放(值为图片下标)
      loop: false,//不循环
      speed: 600, //切换速度
      paginationClickable: true, //点击小点可以切换
    });
   });
});

当有 3 组图片需要依次播放时(多组以此类推)

情景:第 2 组图片滑动最后一张时,需要加载第 3 组图片;第 2 组图片滑动第一张时,需要加载第 1 组图片。

方法:在初始化的时候,配置回调函数onTouchStart(开始滑动的X轴值)和 onTouchEnd(结束滑动的X轴值)。用差值来判断是往前滑还是往后划。

this.$nextTick(() => {
  let mySwiper = new Swiper(".swiper-container", {
   observer: true, //修改swiper自己或子元素时,自动初始化swiper
   observeParents: true, //修改swiper的父元素时,自动初始化swiper     
   onTouchStart: function(swiper) {
    this.positionStart = swiper.getWrapperTranslate();
   },
   onTouchEnd: function(swiper) {
    this.positionEnd = swiper.getWrapperTranslate();
    if (this.positionStart > this.positionEnd && this.pages.length - 1 == this.mySwiper.activeIndex) { 
      //向后滑,加载后一组图片       
    } else if (mySwiper.activeIndex == 0 && this.positionStart < this.positionEnd) {
      //向前划,加载前一组图片  
    }
   }
  });
 });

这时,图片已经加载了另外一组图片,但是各组图片之间没有连贯起来,这就需要用到 slideTo方法去跳转(若加载第 3 组,则跳转到下标第 0 个;若加载第 1 组,则跳转到下标第 图片个数-1 个)。

mySwiper.slideTo('要跳转的图片下标', 10, false) // 10表示跳转速度;false 代表是否触发回到函数

数据方法配置

export default {
 name: '',
 data() {
  return {
   swiperOption: {
    // NotNextTick is a component's own property, and if notNextTick is set to true, the component will not instantiate the swiper through NextTick, which means you can get the swiper object the first time (if you need to use the get swiper object to do what Things, then this property must be true)
    // notNextTick是一个组件自有属性,如果notNextTick设置为true,组件则不会通过NextTick来实例化swiper,也就意味着你可以在第一时间获取到swiper对象,假如你需要刚加载遍使用获取swiper对象来做什么事,那么这个属性一定要是true
    notNextTick: true,
    // swiper configs 所有的配置同swiper官方api配置
    autoplay: 3000,
    // direction : 'vertical',
    effect:"coverflow",
    grabCursor : true,
    setWrapperSize :true,
    // autoHeight: true,
    // paginationType:"bullets",
    pagination : '.swiper-pagination',
    paginationClickable :true,
    prevButton:'.swiper-button-prev',
    nextButton:'.swiper-button-next',
    // scrollbar:'.swiper-scrollbar',
    mousewheelControl : true,
    observeParents:true,
    // if you need use plugins in the swiper, you can config in here like this
    // 如果自行设计了插件,那么插件的一些配置相关参数,也应该出现在这个对象中,如下debugger
    // debugger: true,
    // swiper callbacks
    // swiper的各种回调函数也可以出现在这个对象中,和swiper官方一样
    // onTransitionStart(swiper){
    //  console.log(swiper)
    // },
    // more Swiper configs and callbacks...
    // ...
   }
  }
 },components: {
 swiper,
 swiperSlide
},
 // you can find current swiper instance object like this, while the notNextTick property value must be true
 // 如果你需要得到当前的swiper对象来做一些事情,你可以像下面这样定义一个方法属性来获取当前的swiper对象,同时notNextTick必须为true
 computed: {
  swiper() {
   return this.$refs.mySwiper.swiper
  }
 },
 mounted() {
  // you can use current swiper instance object to do something(swiper methods)
  // 然后你就可以使用当前上下文内的swiper对象去做你想做的事了
  // console.log('this is current swiper instance object', this.swiper)
  // this.swiper.slideTo(3, 1000, false)
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
xss文件页面内容读取(解决)
Nov 28 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
Aug 07 Javascript
layui 解决form表单点击无反应的问题
Oct 25 Javascript
js实现页面图片消除效果
Mar 24 Javascript
JS可断点续传文件上传实现代码解析
Jul 30 Javascript
使用Vue实现一个树组件的示例
Nov 06 Javascript
js获取图片的base64编码并压缩
Dec 05 Javascript
Vue框架里使用Swiper的方法示例
Sep 20 #Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 #Javascript
Vue常见面试题整理【值得收藏】
Sep 20 #Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 #Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 #Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 #Javascript
浅谈React Event实现原理
Sep 20 #Javascript
You might like
漂亮但不安全的CTB
2006/10/09 PHP
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
Python 数据结构之旋转链表
2017/02/25 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
python分布式编程实现过程解析
2019/11/08 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
python中安装django模块的方法
2020/03/12 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
员工拓展培训方案
2014/02/15 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
文明单位创建材料
2014/12/24 职场文书
2015年售票员工作总结
2015/04/29 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
详解Vue的列表渲染
2021/11/20 Vue.js
服务器间如何实现文件共享
2022/05/20 Servers