详解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 相关文章推荐
JavaScript语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
javascript学习笔记(五)正则表达式
Apr 08 Javascript
jQuery.each()用法分享
Jul 31 Javascript
jQuery 获取浏览器所在的IP地址的小例子
Nov 08 Javascript
ajax+jQuery实现级联显示地址的方法
May 06 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
Dec 11 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
Jun 16 Javascript
node中modules.exports与exports导出的区别
Jun 08 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
Jul 09 Javascript
js面试题之异步问题的深入理解
Sep 20 Javascript
解决ant Design中Select设置initialValue时的大坑
Oct 29 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
PHP开发入门教程之面向对象
2006/12/05 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
基于jQuery实现最基本的淡入淡出效果实例
2015/02/02 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
JavaScript的setter与getter方法
2017/11/29 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
python3字符串操作总结
2019/07/24 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
用C语言实现文件读写操作
2013/10/27 面试题
简述DNS进行域名解析的过程
2013/12/02 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
物业工作计划书
2014/01/10 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
总经理岗位职责
2015/02/04 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
婚宴新娘致辞
2015/07/28 职场文书
python利用while求100内的整数和方式
2021/11/07 Python
用JS创建一个录屏功能
2021/11/11 Javascript