详解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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
Apr 20 Javascript
jQuery实战之品牌展示列表效果
Apr 10 Javascript
做web开发 先学JavaScript
Dec 12 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
Bootstrap每天必学之警告框插件
Apr 26 Javascript
详解vee-validate的使用个人小结
Jun 07 Javascript
webpack4 CSS Tree Shaking的使用
Sep 03 Javascript
使用Javascript简单计算器
Nov 17 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 Javascript
element-ui 实现响应式导航栏的示例代码
May 08 Javascript
微信小程序地图实现展示线路
Jul 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
VOLVO车载收音机
2021/03/02 无线电
php基础知识:类与对象(5) static
2006/12/13 PHP
分享PHP入门的学习方法
2007/01/02 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
js表单验证实例讲解
2016/03/31 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
初步理解Python进程的信号通讯
2015/04/09 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
名片管理系统python版
2018/01/11 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
jupyter notebook清除输出方式
2020/04/10 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
python 实现两个npy档案合并
2020/07/01 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
2014年预算员工作总结
2014/12/05 职场文书
现实表现证明材料
2015/06/19 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
MySQL系列之三 基础篇
2021/07/02 MySQL
ubuntu下常用apt命令介绍
2022/06/05 Servers