详解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 相关文章推荐
网页里控制图片大小的相关代码
Jun 13 Javascript
JS网页在线获取鼠标坐标值的方法
Feb 28 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
Mar 27 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
Nov 02 Javascript
JavaScript实现的多种鼠标拖放效果
Nov 03 Javascript
Node.js的Koa框架上手及MySQL操作指南
Jun 13 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
AngularJS中run方法的巧妙运用
Jan 04 Javascript
Javascript中字符串相关常用的使用方法总结
Mar 13 Javascript
vue.js源代码core scedule.js学习笔记
Jul 03 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
jquery插件制作教程 txtHover
2012/08/17 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python解析xml文件实例分享
2013/12/04 Python
Python3基础之条件与循环控制实例解析
2014/08/13 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python Subprocess模块原理及实例
2019/08/26 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
自荐信封面
2013/12/04 职场文书
财务主管的岗位职责
2013/12/30 职场文书
前台接待员岗位职责
2014/01/02 职场文书
个性发展自我评价
2014/02/11 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
MySQL 开窗函数
2022/02/15 MySQL