详解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 相关文章推荐
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
jquery ui对话框实例代码
May 10 Javascript
Jquery解析Json格式数据过程代码
Oct 17 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
angularjs+bootstrap菜单的使用示例代码
Mar 07 Javascript
深入理解Vue transition源码分析
Jul 30 Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 Javascript
swiper插件自定义切换箭头按钮
Dec 28 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
简单了解JavaScript弹窗实现代码
May 07 Javascript
微信小程序实现列表的横向滑动方式
Jul 15 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
浅析PHP的ASCII码转换类
2013/07/05 PHP
php 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
自己的js工具_Form 封装
2009/08/21 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
javascript操作cookie
2017/01/17 Javascript
浅谈Vue.js
2017/03/02 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
解决Python传递中文参数的问题
2015/08/04 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
python 伯努利分布详解
2020/02/25 Python
python求解汉诺塔游戏
2020/07/09 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
大一学生的职业生涯规划书范文
2014/01/19 职场文书
致共产党员倡议书
2014/04/16 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
精神文明建设标语
2014/06/16 职场文书
2014年租房协议书范本
2014/10/30 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript