详解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 相关文章推荐
web开发人员学习jQuery的6大理由及jQuery的优势介绍
Jan 03 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
Jun 09 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
Mar 26 Javascript
Javascript原型链的原理详解
Jan 05 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
Mar 22 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
深究AngularJS之ui-router详解
Jun 13 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 Javascript
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
Vue3.x源码调试的实现方法
Oct 13 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
phpMyAdmin自动登录和取消自动登录的配置方法
2014/05/12 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
用jquery来定位
2007/02/20 Javascript
jQuery 工具函数学习资料
2010/04/29 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
python退出命令是什么?详解python退出方法
2018/12/10 Python
python机器人运动范围问题的解答
2019/04/29 Python
详解Python中的分支和循环结构
2020/02/11 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
大一学生假期实习的自我评价
2013/10/12 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
简历上的自我评价
2014/02/03 职场文书
周年庆典主持词
2014/04/02 职场文书
森林防火标语
2014/06/23 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书